QWidget * ToolBar::createActionWidget(QAction *before, ToolBarAction &action) { if (action.actionName.startsWith(QLatin1String("__separator"))) return createSeparator(before, action); else if (action.actionName.startsWith(QLatin1String("__spacer"))) return createSpacer(before, action); else return createPushButton(before, action); }
/************************************************************************* Initialise the Window based object ready for use. *************************************************************************/ void Combobox::initialise(void) { d_editbox = createEditbox(getName() + "__auto_editbox__"); d_droplist = createDropList(getName() + "__auto_droplist__"); d_button = createPushButton(getName() + "__auto_button__"); d_droplist->setFont(getFont()); d_editbox->setFont(getFont()); addChildWindow(d_editbox); addChildWindow(d_droplist); addChildWindow(d_button); // internal event wiring d_button->subscribeEvent(PushButton::EventMouseButtonDown, Event::Subscriber(&CEGUI::Combobox::button_PressHandler, this)); d_droplist->subscribeEvent(ComboDropList::EventListSelectionAccepted, Event::Subscriber(&CEGUI::Combobox::droplist_SelectionAcceptedHandler, this)); d_droplist->subscribeEvent(Window::EventHidden, Event::Subscriber(&CEGUI::Combobox::droplist_HiddenHandler, this)); d_editbox->subscribeEvent(Window::EventMouseButtonDown, Event::Subscriber(&CEGUI::Combobox::editbox_MouseDownHandler, this)); // event forwarding setup d_editbox->subscribeEvent(Editbox::EventReadOnlyModeChanged, Event::Subscriber(&CEGUI::Combobox::editbox_ReadOnlyChangedHandler, this)); d_editbox->subscribeEvent(Editbox::EventValidationStringChanged, Event::Subscriber(&CEGUI::Combobox::editbox_ValidationStringChangedHandler, this)); d_editbox->subscribeEvent(Editbox::EventMaximumTextLengthChanged, Event::Subscriber(&CEGUI::Combobox::editbox_MaximumTextLengthChangedHandler, this)); d_editbox->subscribeEvent(Editbox::EventTextInvalidated, Event::Subscriber(&CEGUI::Combobox::editbox_TextInvalidatedEventHandler, this)); d_editbox->subscribeEvent(Editbox::EventInvalidEntryAttempted, Event::Subscriber(&CEGUI::Combobox::editbox_InvalidEntryAttemptedHandler, this)); d_editbox->subscribeEvent(Editbox::EventCaratMoved, Event::Subscriber(&CEGUI::Combobox::editbox_CaratMovedHandler, this)); d_editbox->subscribeEvent(Editbox::EventTextSelectionChanged, Event::Subscriber(&CEGUI::Combobox::editbox_TextSelectionChangedHandler, this)); d_editbox->subscribeEvent(Editbox::EventEditboxFull, Event::Subscriber(&CEGUI::Combobox::editbox_EditboxFullEventHandler, this)); d_editbox->subscribeEvent(Editbox::EventTextAccepted, Event::Subscriber(&CEGUI::Combobox::editbox_TextAcceptedEventHandler, this)); d_editbox->subscribeEvent(Editbox::EventTextChanged, Event::Subscriber(&CEGUI::Combobox::editbox_TextChangedEventHandler, this)); d_droplist->subscribeEvent(Listbox::EventListContentsChanged, Event::Subscriber(&CEGUI::Combobox::listbox_ListContentsChangedHandler, this)); d_droplist->subscribeEvent(Listbox::EventSelectionChanged, Event::Subscriber(&CEGUI::Combobox::listbox_ListSelectionChangedHandler, this)); d_droplist->subscribeEvent(Listbox::EventSortModeChanged, Event::Subscriber(&CEGUI::Combobox::listbox_SortModeChangedHandler, this)); d_droplist->subscribeEvent(Listbox::EventVertScrollbarModeChanged, Event::Subscriber(&CEGUI::Combobox::listbox_VertScrollModeChangedHandler, this)); d_droplist->subscribeEvent(Listbox::EventHorzScrollbarModeChanged, Event::Subscriber(&CEGUI::Combobox::listbox_HorzScrollModeChangedHandler, this)); // put components in their initial positions performChildWindowLayout(); }
/** * @brief 右侧布局 */ void MainWindow::setupMainWindow() { btnGroup = new QButtonGroup; QGridLayout *grid = new QGridLayout; QSignalMapper *mapper = new QSignalMapper(this); QPixmap bmp; QString name; for (int i = 0; i < FunCount; i++) { bmp = getFuncIcon(i); funcBtn[i] = createPushButton(QSize(97, 132), bmp, QString(), SLOT(updateButtonTip()), SLOT(updateButtonTip())); name = getFuncName(i); funcLbl[i] = new Label; funcLbl[i]->setCustomText(name, Qt::AlignCenter); funcBtn[i]->setObjectName(name); btnGroup->addButton(funcBtn[i]); QVBoxLayout *vbox = new QVBoxLayout; vbox->addWidget(funcBtn[i]); vbox->addWidget(funcLbl[i]); connect(funcBtn[i], SIGNAL(released()), mapper, SLOT(map())); mapper->setMapping(funcBtn[i], i); grid->addLayout(vbox, i / 5, i % 5); } connect(mapper, SIGNAL(mapped(int)), this, SLOT(onFuncSelect(int))); grid->setVerticalSpacing(15); grid->setHorizontalSpacing(50); mainBtnStyleRender(); logo = new QLabel; logo->setPixmap(QPixmap("../icons/mainwindow/logo.png")); title = new QLabel; title->setText("电 源 远 程 监 控 系 统"); title->setAlignment(Qt::AlignCenter); #ifdef ARM_COMPILE title->setStyleSheet("color:rgb(200,19,55)"); #else title->setStyleSheet("font-size: 30px;color:rgb(200,19,55)"); #endif QHBoxLayout *logoLayout = new QHBoxLayout; logoLayout->addSpacing(20); logoLayout->addWidget(logo); logoLayout->addSpacing(80); logoLayout->addWidget(title); logoLayout->addStretch(); QHBoxLayout *funcLayout = new QHBoxLayout; funcLayout->addStretch(); funcLayout->addLayout(grid); funcLayout->addStretch(); QVBoxLayout *mainLayout = new QVBoxLayout; mainLayout->addLayout(logoLayout); mainLayout->addSpacing(80); mainLayout->addLayout(funcLayout); mainLayout->addStretch(); mainLayout->setContentsMargins(10, 10, 10, 10); setLayout(mainLayout); }