#include "frmmain.h" #include "ui_frmmain.h" #include "quihelper.h" #include "iconhelper.h" #include "frmcmm.h" frmMain::frmMain(QWidget *parent) : QDialog(parent), ui(new Ui::frmMain) { ui->setupUi(this); this->initForm(); this->initStyle(); } frmMain::~frmMain() { delete ui; } bool frmMain::eventFilter(QObject *watched, QEvent *event) { if (watched == ui->widgetTitle) { if (event->type() == QEvent::MouseButtonDblClick) { this->on_btnMenu_Max_clicked(); return true; } } return QWidget::eventFilter(watched, event); } void frmMain::initForm() { //设置无边框 QUIHelper::setFramelessForm(this); IconHelper::setIcon(ui->btnMenu_Min, 0xf068, 22); IconHelper::setIcon(ui->btnMenu_Max, 0xf067, 22); IconHelper::setIcon(ui->btnMenu_Close, 0xf00d, 22); ui->labTitle->setText(" 智能制造自动化系统"); this->setWindowTitle(ui->labTitle->text()); ui->widgetTitle->installEventFilter(this); frmCMM *cmm = new frmCMM; ui->stackedWidget->addWidget(cmm); QFont font; font.setPixelSize(20); font.setBold(true); btns << ui->btnCMM << ui->btnCNC << ui->btnEDM << ui->btnControl << ui->btnConfig; foreach (QPushButton *btn, btns) { btn->setCheckable(true); btn->setFont(font); connect(btn, SIGNAL(clicked(bool)), this, SLOT(buttonClick())); } ui->btnCMM->click(); } void frmMain::initStyle() { QStringList qss; //全局无焦点虚边框,全局文字颜色,全局字号 qss.append(QString("*{outline:0px;color:%1;}").arg("#000000")); //全局边框 qss.append(QString("QDialog#frmMain{border:2px solid #52B3E1;}")); //滚动条无边框 qss.append(QString("QScrollArea{border:none;}")); //面板容器增加分隔符 qss.append(QString("QFrame#frameLine{border:1px solid #52B3E1;}")); //ID号突出颜色 qss.append(QString("#labText{color:#52B3E1;}")); //主界面顶部栏背景 qss.append(QString("QWidget#widgetTitle{background:%1;}").arg("#1EA2E3")); qss.append(QString("QWidget#widgetNav>QLabel{color:%1;}").arg("#FFFFFF")); //条码栏背景 qss.append(QString("QWidget#widgetStatus{background:%1;}").arg("#D1EDF9")); //左上角logo,自适应居中显示 QPixmap pixLogo(":/image/logo.png"); pixLogo = pixLogo.scaled(QSize(50, 50), Qt::KeepAspectRatio); ui->labLogo->setPixmap(pixLogo); //左上角标题字体 QFont font; font.setPixelSize(30); font.setBold(true); ui->labTitle->setFont(font); //主界面顶部右上角 qss.append(QString("QWidget#widgetMenu QAbstractButton{background:none;border:none;color:%1;}").arg("#FFFFFF")); qss.append(QString("QAbstractButton::menu-indicator{image:None;}")); qss.append(QString("QWidget#widgetMenu QAbstractButton:hover{color:%1;}").arg("#CD1B19")); qss.append(QString("QWidget#widgetMenu QAbstractButton:pressed{color:%1;}").arg("#D64D54")); //主界面导航按钮 qss.append(QString("QWidget#widgetNav>QPushButton{color:%1;border-image:url(:/image/%2);}").arg("#FFFFFF").arg("btn_bg_normal.png")); qss.append(QString("QWidget#widgetNav>QPushButton:hover,QWidget#widgetNav>QPushButton:checked" "{color:%1;border-image:url(:/image/%2);}").arg("#7FD3F5").arg("btn_bg_pressed.png")); //所有文本框样式 qss.append(QString("QLineEdit{border:1px solid #36BEC0;}")); //所有按钮样式 qss.append(QString("QPushButton{border:none;color:#FFFFFF;background:#1AA1E3;}")); qss.append(QString("QPushButton:hover{background:#00B17D;}")); qApp->setStyleSheet(qss.join("")); } void frmMain::buttonClick() { QPushButton *btn = (QPushButton *)sender(); foreach (QPushButton *b, btns) { b->setChecked(b == btn); } ui->stackedWidget->setCurrentIndex(btns.indexOf(btn)); } void frmMain::on_btnMenu_Min_clicked() { this->showMinimized(); } void frmMain::on_btnMenu_Max_clicked() { static bool max = false; static QRect location = this->geometry(); if (max) { this->setGeometry(location); ui->btnMenu_Max->setToolTip("最大化"); } else { location = this->geometry(); ui->btnMenu_Max->setToolTip("还原"); this->setGeometry(QUIHelper::getScreenRect()); } this->setProperty("canMove", max); max = !max; } void frmMain::on_btnMenu_Close_clicked() { exit(0); }