#include "frmmain.h" #include "ui_frmmain.h" #include "head.h" #include "iconhelper.h" #include "frmcurve.h" #include "frmconfig.h" #include "frmdebug.h" frmMain::frmMain(QWidget *parent) : QWidget(parent), ui(new Ui::frmMain) { ui->setupUi(this); this->initStyle(); this->initForm(); } frmMain::~frmMain() { delete ui; } void frmMain::showEvent(QShowEvent *) { int width = ui->widgetPlot->width(); ui->navBar->setFixedWidth(width); ui->navBar->setSpace(width / 5.5); QTimer::singleShot(100, this, SLOT(initBar())); } void frmMain::initStyle() { //加载样式表 QFile file(":/qss/silvery.css"); if (file.open(QFile::ReadOnly)) { QString qss = QLatin1String(file.readAll()); QString paletteColor = qss.mid(20, 7); qApp->setPalette(QPalette(paletteColor)); qApp->setStyleSheet(qss); file.close(); } } void frmMain::initForm() { //放大单选框指示器,指定数码管颜色 QStringList qss; qss.append(QString("QRadioButton::indicator{width:%1px;height:%1px;}").arg(30)); qss.append(QString("QLCDNumber{background:#000000;color:%1;}").arg("#1BBC9B")); this->setStyleSheet(qss.join("")); QStringList items; items << "Single" << "Curve" << "Mannal"; ui->navBar->setItems(items.join("|")); QFont font; font.setPixelSize(18); ui->btnStart->setFont(font); ui->btnStart->setMinimumWidth(110); ui->btnStart->setShowText(true); ui->btnStart->setTextOn(tr("Start")); ui->btnStart->setTextOff(tr("Stop")); //设置值 ui->lcdTemp->display("1000.5"); ui->lcdVmon->display("45.18"); ui->lcdImon->display("28.66"); //设置字体大小 font.setBold(true); font.setPixelSize(25); ui->labTemp->setFont(font); font.setPixelSize(20); font.setBold(false); ui->labVmon->setFont(font); ui->labImon->setFont(font); ui->labVset->setFont(font); ui->labIset->setFont(font); ui->labPoint->setFont(font); font.setBold(true); ui->txtVset->setFont(font); ui->txtIset->setFont(font); ui->txtPoint->setFont(font); font.setPixelSize(20); font.setBold(false); ui->navBar->setFont(font); //设置按钮图形字体 IconHelper::setIcon(ui->btnCurve, 0xf1fe, 30); IconHelper::setIcon(ui->btnConfig, 0xf085, 30); IconHelper::setIcon(ui->btnDebug, 0xf188, 30); //绑定曲线缩略图按下事件 connect(ui->widgetPlot, SIGNAL(plotPressed()), this, SLOT(plotPressed())); connect(ui->navBar, SIGNAL(currentItemChanged(int, QString)), this, SLOT(currentItemChanged(int, QString))); frmCurve *curve = new frmCurve; connect(curve, SIGNAL(returnMain()), this, SLOT(returnMain())); ui->stackedWidget->addWidget(curve); frmConfig *config = new frmConfig; connect(config, SIGNAL(returnMain()), this, SLOT(returnMain())); ui->stackedWidget->addWidget(config); frmDebug *debug = new frmDebug; connect(debug, SIGNAL(returnMain()), this, SLOT(returnMain())); ui->stackedWidget->addWidget(debug); } void frmMain::initBar() { ui->navBar->setCurrentIndex(0); } void frmMain::plotPressed() { //按下全屏,再次按下恢复 static bool plotMax = false; ui->widgetPlot->setBtnHide(plotMax); ui->widgetTop->setVisible(plotMax); ui->frameLeft->setVisible(plotMax); ui->widgetNav->setVisible(plotMax); plotMax = !plotMax; } void frmMain::returnMain() { ui->stackedWidget->setCurrentIndex(0); } void frmMain::currentItemChanged(int index, const QString &item) { ui->labVset->setVisible(true); ui->labIset->setVisible(true); ui->txtVset->setVisible(true); ui->txtIset->setVisible(true); ui->labPoint->setVisible(true); ui->txtPoint->setVisible(true); ui->btnCurve->setVisible(true); //不同模式显示不同的按钮 if (item == "Single") { ui->labVset->setVisible(false); ui->labIset->setVisible(false); ui->txtVset->setVisible(false); ui->txtIset->setVisible(false); ui->btnCurve->setVisible(false); } else if (item == "Curve") { ui->labVset->setVisible(false); ui->labIset->setVisible(false); ui->txtVset->setVisible(false); ui->txtIset->setVisible(false); ui->labPoint->setVisible(false); ui->txtPoint->setVisible(false); } else if (item == "Mannal") { ui->labPoint->setVisible(false); ui->txtPoint->setVisible(false); ui->btnCurve->setVisible(false); } } void frmMain::on_btnCurve_clicked() { ui->stackedWidget->setCurrentIndex(1); } void frmMain::on_btnConfig_clicked() { ui->stackedWidget->setCurrentIndex(2); } void frmMain::on_btnDebug_clicked() { ui->stackedWidget->setCurrentIndex(3); }