PopupButton::PopupButton(QWidget* parent) { // this->setFrameStyle(QFrame::Box); QVBoxLayout* layout = new QVBoxLayout(this); layout->setMargin(0); this->setLayout(layout); // QToolButton* expandButton = new QToolButton(this); QToolButton* expandButton = new CXSmallToolButton(this); mShowHeaderButton = expandButton; this->setFixedSize(expandButton->sizeHint()); QAction* action = new QAction(QIcon(":icons/open_icon_library/layer-lower-3.png"), "Controls", this); QString tip = "Show Controls"; action->setStatusTip(tip); action->setWhatsThis(tip); action->setToolTip(tip); connect(action, SIGNAL(triggered()), this, SLOT(onTriggered())); mAction = action; mShowHeaderButton->setDefaultAction(action); layout->addWidget(mShowHeaderButton); action->setCheckable(true); }
QToolButton* SelectPathWidgetBase::CreateToolButton(const DAVA::String& iconPath) { QToolButton* retButton; retButton = new QToolButton(this); QIcon icon(iconPath.c_str()); retButton->setIcon(icon); retButton->setCursor(Qt::ArrowCursor); retButton->setStyleSheet("QToolButton { border: none; padding: 0px; }"); int frameWidth = style()->pixelMetric(QStyle::PM_DefaultFrameWidth); QSize msz = minimumSizeHint(); setStyleSheet(QString("QLineEdit { padding-right: %1px; } ").arg(retButton->sizeHint().width() * 2 + frameWidth)); setMinimumSize(qMax(msz.width(), retButton->sizeHint().height() + frameWidth * 2 + 2), qMax(msz.height(), retButton->sizeHint().height() + frameWidth * 2 + 2)); return retButton; }
UBToolbarButtonGroup::UBToolbarButtonGroup(QToolBar *toolBar, const QList<QAction*> &actions) : QWidget(toolBar) , mActions(actions) , mCurrentIndex(-1) , mDisplayLabel(true) , mActionGroup(0) { Q_ASSERT(actions.size() > 0); mToolButton = qobject_cast<QToolButton*>(toolBar->layout()->itemAt(0)->widget()); Q_ASSERT(mToolButton); QVBoxLayout *verticalLayout = new QVBoxLayout(this); QHBoxLayout *horizontalLayout = new QHBoxLayout(); horizontalLayout->setSpacing(0); verticalLayout->addStretch(); verticalLayout->addLayout(horizontalLayout); verticalLayout->addStretch(); mActionGroup = new QActionGroup(this); mActionGroup->setExclusive(true); QSize buttonSize; int i = 0; foreach(QAction *action, actions) { mActionGroup->addAction(action); QToolButton *button = new QToolButton(this); mButtons.append(button); button->setDefaultAction(action); button->setCheckable(true); if(i == 0) { button->setObjectName("ubButtonGroupLeft"); } else if (i == actions.size() - 1) { button->setObjectName("ubButtonGroupRight"); } else { button->setObjectName("ubButtonGroupCenter"); } connect(button, SIGNAL(triggered(QAction*)), this, SLOT(selected(QAction*))); horizontalLayout->addWidget(button); mLabel = action->text(); buttonSize = button->sizeHint(); i++; }
void ProgressLineEdit::RepaintButtons () { const int frameWidth = style ()->pixelMetric (QStyle::PM_DefaultFrameWidth); int rightBorder = 0; int realBorder = 0; for (int i = VisibleButtons_.count () - 1; i >= 0; --i) { QToolButton *btn = VisibleButtons_ [i]; const QSize& bmSz = btn->sizeHint (); rightBorder += bmSz.width (); if (i > 0) realBorder += bmSz.width (); btn->move (rect ().right () - frameWidth - rightBorder, (rect ().bottom () + 1 - bmSz.height ()) / 2); } const QMargins& margins = textMargins (); setTextMargins (margins.left (), margins.top (), realBorder + frameWidth, margins.bottom ()); }