Files
gcs-nf/App/MenuBarUI/MenuBarUI.cpp
T

211 lines
5.2 KiB
C++

#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();
}