#include "frmmain.h" #include "ui_frmmain.h" #include "head.h" #include "frmcall.h" #include "frmvideo.h" #include "frmaudio.h" frmMain::frmMain(QWidget *parent) : QWidget(parent), ui(new Ui::frmMain) { ui->setupUi(this); this->initForm(); } frmMain::~frmMain() { delete ui; } void frmMain::initForm() { //将窗体固定大小 this->setFixedSize(700, 800); this->setWindowTitle("主界面"); ui->labTitle->setText("甘肃省高速收费站"); //设置样式表 QStringList qss; //主界面背景 qss.append("QWidget#widgetMain{background-image:url(:/image/bg_main.png);}"); //顶部标题栏背景 qss.append("QWidget#widgetTitle{background-image:url(:/image/bg_title.png);}"); //左上角logo qss.append("QLabel#labLogo{border-image:url(:/image/logo.png);}"); //顶部标题栏间隔背景 qss.append("QLabel#labTitleLine{border-image:url(:/image/line_title.png);}"); //顶部标题标签 qss.append("QLabel#labTitle{color:#FFFFFF;}"); //导航栏背景,如果需要透明效果,将255透明值修改即可 qss.append("QWidget#widgetNav{background-color:rgba(48,39,40,155);}"); //导航栏间隔背景,flag属性为nav的widget中的所有label qss.append("QWidget[flag=\"nav\"] QLabel{border-image:url(:/image/line_nav.png);}"); //导航栏按钮背景透明 qss.append("QWidget[flag=\"nav\"] QToolButton{color:#FFFFFF;background-color:rgba(0,0,0,0);}"); //实时视频窗体边框背景 qss.append(QString("QWidget[flag=\"video\"]{border:%1px solid #3F64B2;border-radius:%2px;}").arg(8).arg(10)); //实时视频窗体中的标签颜色 qss.append("QWidget[flag=\"video\"] QLabel{background-color:#E1ECF2;color:#000000;}"); //车道窗体背景 qss.append("QWidget[flag=\"driveway\"]{background-color:#D5D5D5;}"); //车道标题文字颜色 qss.append("QLabel#labDrivewayTitle1{color:#2E2C39;}"); qss.append("QLabel#labDrivewayTitle2{color:#1A449A;}"); //车道按钮背景透明 qss.append("QWidget[flag=\"ring\"] QToolButton{background-color:rgba(0,0,0,0);}"); //打电话窗体背景 qss.append("QWidget[flag=\"call\"]{background-color:#2F2627;}"); //打电话窗体按钮背景凹陷效果 qss.append(""); //打电话窗体按钮背景透明 qss.append("QToolButton#btnOn,QToolButton#btnOff{background-color:rgba(0,0,0,0);}"); this->setStyleSheet(qss.join("")); //标题栏字体 QFont fontTitle; fontTitle.setPixelSize(25); fontTitle.setBold(true); ui->labTitle->setFont(fontTitle); //导航栏按钮字体 QFont fontBtn; fontBtn.setPixelSize(15); fontBtn.setBold(true); ui->btnCall->setFont(fontBtn); ui->btnVideo->setFont(fontBtn); ui->btnAudio->setFont(fontBtn); ui->widgetNav->setProperty("flag", "nav"); //添加子窗体,单击顶部导航按钮切换子窗体 ui->stackedWidget->addWidget(new frmCall); ui->stackedWidget->addWidget(new frmVideo); ui->stackedWidget->addWidget(new frmAudio); //绑定顶部导航按钮单击事件 QList btns = ui->widgetNav->findChildren(); foreach (QToolButton *btn, btns) { connect(btn, SIGNAL(clicked(bool)), this, SLOT(buttonClick())); } ui->btnCall->click(); } void frmMain::buttonClick() { QToolButton *btn = (QToolButton *)sender(); if (btn == ui->btnCall) { ui->stackedWidget->setCurrentIndex(0); } else if (btn == ui->btnVideo) { ui->stackedWidget->setCurrentIndex(1); } else if (btn == ui->btnAudio) { ui->stackedWidget->setCurrentIndex(2); } }