#include "MenuBarUI.h" #include "ui_MenuBarUI.h" MenuBarUI::MenuBarUI(QWidget *parent) : QWidget(parent), ui(new Ui::MenuBarUI) { ui->setupUi(this); //load qss QFile file(":/qss/MenuBarUI.qss"); file.open(QFile::ReadOnly); QTextStream filetext(&file); QString stylesheet = filetext.readAll(); this->setStyleSheet(stylesheet); file.close(); MessageTimer = new QTimer(this); connect(MessageTimer,SIGNAL(timeout()), this,SLOT(MessageTimeOut())); showMessage(tr("Starting...\n"),5000); setPushButtonState(state::unSelected, state::unSelected, state::unSelected, state::Selected, state::unSelected, state::unSelected); } MenuBarUI::~MenuBarUI() { if(MessageTimer) { if(MessageTimer->isActive()) { MessageTimer->stop(); } delete MessageTimer; } delete ui; } void MenuBarUI::setPushButtonState(uint8_t state1,uint8_t state2,uint8_t state3,uint8_t state4,uint8_t state5,uint8_t state6) { ui->pushButton_Setting->setProperty("state",state1); ui->pushButton_Setting->style()->unpolish(ui->pushButton_Setting); ui->pushButton_Setting->style()->polish(ui->pushButton_Setting); ui->pushButton_SelfTest->setProperty("state",state2); ui->pushButton_SelfTest->style()->unpolish(ui->pushButton_SelfTest); ui->pushButton_SelfTest->style()->polish(ui->pushButton_SelfTest); ui->pushButton_Mission->setProperty("state",state3); ui->pushButton_Mission->style()->unpolish(ui->pushButton_Mission); ui->pushButton_Mission->style()->polish(ui->pushButton_Mission); ui->pushButton_Flight->setProperty("state",state4); ui->pushButton_Flight->style()->unpolish(ui->pushButton_Flight); ui->pushButton_Flight->style()->polish(ui->pushButton_Flight); ui->pushButton_Info->setProperty("state",state5); ui->pushButton_Info->style()->unpolish(ui->pushButton_Info); ui->pushButton_Info->style()->polish(ui->pushButton_Info); ui->pushButton_Base->setProperty("state",state6); ui->pushButton_Base->style()->unpolish(ui->pushButton_Base); ui->pushButton_Base->style()->polish(ui->pushButton_Base); } void MenuBarUI::onClicked() { qDebug() << "click"; } void MenuBarUI::on_pushButton_Setting_clicked() { ui->pushButton_Base->hide(); setPushButtonState(state::Selected, state::unSelected, state::unSelected, state::unSelected, state::unSelected, state::unSelected); update(); emit IndexChanged(0); } void MenuBarUI::on_pushButton_SelfTest_clicked() { ui->pushButton_Base->hide(); setPushButtonState(state::unSelected, state::Selected, state::unSelected, state::unSelected, state::unSelected, state::unSelected); update(); emit IndexChanged(1); } void MenuBarUI::on_pushButton_Mission_clicked() { ui->pushButton_Base->hide(); setPushButtonState(state::unSelected, state::unSelected, state::Selected, state::unSelected, state::unSelected, state::unSelected); update(); emit IndexChanged(2); } void MenuBarUI::on_pushButton_Flight_clicked() { ui->pushButton_Base->show(); setPushButtonState(state::unSelected, state::unSelected, state::unSelected, state::Selected, state::unSelected, state::unSelected); update(); emit IndexChanged(3); } void MenuBarUI::on_pushButton_Info_clicked() { ui->pushButton_Base->hide(); setPushButtonState(state::unSelected, state::unSelected, state::unSelected, state::unSelected, state::Selected, state::unSelected); update(); emit IndexChanged(4); } void MenuBarUI::on_pushButton_Base_clicked() { update(); emit IndexChanged(5); } void MenuBarUI::showMessage(const QString &message, int TimeOut) { ui->label_Status->setText(message); //这句:如果小于0,那么不生成定时器,减少内存开支,因为小于0时,定时器永远不会触发 if(TimeOut > 0) { if(MessageTimer->isActive()) { MessageTimer->stop(); } MessageTimer->start(TimeOut); } else { if(MessageTimer->isActive()) { MessageTimer->stop(); } } } void MenuBarUI::clearMessage() { ui->label_Status->clear(); } void MenuBarUI::MessageTimeOut(void) { if(MessageTimer->isActive()) { MessageTimer->stop(); } clearMessage(); }