#pragma execution_character_set("utf-8") #include "frmmain.h" #include "ui_frmmain.h" #include "quihelper.h" #include "iconhelper.h" frmMain::frmMain(QWidget *parent) : QWidget(parent), ui(new Ui::frmMain) { ui->setupUi(this); this->initForm(); } frmMain::~frmMain() { delete ui; } void frmMain::initForm() { this->setWindowTitle("手机APP主界面"); //设置无边框 QUIHelper::setFramelessForm(this); //顶部标题栏加粗显示 QFont font; int fontSize = font.pixelSize(); font.setPixelSize(fontSize + 3); ui->labTitle->setFont(font); ui->labTitle->setText("温湿度监控系统"); ui->widgetNav->setProperty("flag", "bottom"); fontSize = fontSize + 2; IconHelper::setIcon(ui->labMenu, 0xf036, fontSize); IconHelper::setIcon(ui->labAdd, 0xf067, fontSize); ui->labMenu->setFixedWidth(ui->labMenu->sizeHint().width() + 5); ui->labAdd->setFixedWidth(ui->labAdd->sizeHint().width() + 8); //设置按钮的固定高度 QStringList qss; qss.append(QString("QWidget#widgetNav QAbstractButton{min-height:%1px;max-height:%1px;}").arg(50)); this->setStyleSheet(qss.join("")); icons << 0xf042 << 0xf1a4 << 0xf002 << 0xf007; btns << ui->tbtn1 << ui->tbtn2 << ui->tbtn3 << ui->tbtn4; IconHelper::StyleColor styleColor; styleColor.position = "bottom"; styleColor.iconSize = 15; styleColor.iconWidth = 20; styleColor.iconHeight = 20; styleColor.borderWidth = 3; styleColor.borderColor = "#029FEA"; styleColor.setColor("#292F38", "#54626F", "#1D2025", "#FDFDFD"); IconHelper::setStyle(ui->widgetNav, btns, icons, styleColor); //设置对应的按钮的图标显示方案以及是否可以选中以及对应的单击事件 int count = btns.count(); for (int i = 0; i < count; i++) { QToolButton *btn = (QToolButton *)btns.at(i); btn->setCheckable(true); btn->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); connect(btn, SIGNAL(clicked(bool)), this, SLOT(buttonClick())); } ui->tbtn1->click(); } void frmMain::buttonClick() { QAbstractButton *b = (QAbstractButton *)sender(); QString name = b->text(); int index = 0; int count = btns.count(); for (int i = 0; i < count; i++) { QAbstractButton *btn = btns.at(i); btn->setChecked(btn == b); } qDebug() << "单击了" << name; ui->stackedWidget->setCurrentIndex(index); if (name == "我的") { close(); } }