#include "InfoMainForm.h" #include "ui_InfoMainForm.h" InfoMainForm::InfoMainForm(QWidget *parent) : QWidget(parent), ui(new Ui::InfoMainForm) { ui->setupUi(this); initForm(); initSubMenuForms(); initMenuButtons(); ui->menuDeptTask->click(); } InfoMainForm::~InfoMainForm() { delete ui; } void InfoMainForm::initForm() { // 加载样式表 QString qssStyle = QssFileUtils::loadQssFileContent(QApplication::applicationDirPath() + "/qss/infoMain.css"); if (qssStyle.isEmpty() == false) { this->setStyleSheet(qssStyle); // 仅本窗口生效 } ui->scrollArea->setWindowFlags(Qt::FramelessWindowHint); // 设置无边框 } void InfoMainForm::initSubMenuForms() { fmMyTask = new MyTaskForm(this); fmDeptTask = new DeptTaskForm(this); fmNewTask = new NewTaskForm(this); ui->wdgtInfoTable->insertWidget(0, fmDeptTask); ui->wdgtInfoTable->insertWidget(1, fmMyTask); ui->wdgtInfoTable->insertWidget(2, fmNewTask); } void InfoMainForm::initMenuButtons() { // 查找所有 QPushButton 类型的子控件 QButtonGroup * funcButtGroup = new QButtonGroup(); // buttonGroup用于checked状态互斥 QList<QToolButton *> buttList = ui->wdgtMenu->findChildren<QToolButton *>(); for (int i = 0; i < buttList.size(); i++) { QToolButton * menuButt = buttList.at(i); menuButt->setProperty("index", i); menuButt->setCheckable(true); funcButtGroup->addButton(menuButt); connect(menuButt, &QToolButton::clicked, this, &InfoMainForm::onMenuButtonsAction); } } void InfoMainForm::onMenuButtonsAction() { QToolButton *btn = qobject_cast<QToolButton*>(sender()); if(btn) { btn->setChecked(true); ui->wdgtInfoTable->setCurrentIndex(btn->property("index").toInt()); } }