#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(); /* timeRecord = new QDateTime(); timeRecord->setTime(QDateTime::currentDateTime().time()); qDebug() << "time" << timeRecord->time(); */ ui->label_RecordTime->setText("00:00:00"); MessageTimer = new QTimer(this); connect(MessageTimer,SIGNAL(timeout()), this,SLOT(MessageTimeOut())); showMessage(tr("Starting..."),5000); setPushButtonState(state::unSelected, state::unSelected, state::unSelected, state::Selected, state::unSelected, state::unSelected); CurrentIndex = 3; ui->label_Status->hide(); //setArm(true); } 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_Base->setProperty("state",state4); ui->pushButton_Base->style()->unpolish(ui->pushButton_Base); ui->pushButton_Base->style()->polish(ui->pushButton_Base); ui->pushButton_Info->setProperty("state",state5); ui->pushButton_Info->style()->unpolish(ui->pushButton_Info); ui->pushButton_Info->style()->polish(ui->pushButton_Info); } void MenuBarUI::onClicked() { qDebug() << "click"; } void MenuBarUI::on_pushButton_Setting_clicked() { CurrentIndex = 0; setPushButtonState(state::Selected, state::unSelected, state::unSelected, state::unSelected, state::unSelected, state::unSelected); update(); emit IndexChanged(CurrentIndex); } void MenuBarUI::on_pushButton_SelfTest_clicked() { CurrentIndex = 1; setPushButtonState(state::unSelected, state::Selected, state::unSelected, state::unSelected, state::unSelected, state::unSelected); update(); emit IndexChanged(CurrentIndex); } void MenuBarUI::on_pushButton_Mission_clicked() { CurrentIndex = 2; setPushButtonState(state::unSelected, state::unSelected, state::Selected, state::unSelected, state::unSelected, state::unSelected); update(); emit IndexChanged(CurrentIndex); } void MenuBarUI::on_pushButton_Base_clicked() { CurrentIndex = 3; setPushButtonState(state::unSelected, state::unSelected, state::unSelected, state::Selected, state::unSelected, state::unSelected); update(); emit IndexChanged(CurrentIndex); } void MenuBarUI::on_pushButton_Info_clicked() { CurrentIndex = 4; setPushButtonState(state::unSelected, state::unSelected, state::unSelected, state::unSelected, state::Selected, state::unSelected); update(); emit IndexChanged(CurrentIndex); } void MenuBarUI::showMessage(const QString &message, int TimeOut) { ui->label_History_Status->setText(ui->label_Current_Status->text()); ui->label_Current_Status->setText(" " + message); ui->label_Status->setText(" " + message); //这句:如果小于0,那么不生成定时器,减少内存开支,因为小于0时,定时器永远不会触发 if(TimeOut > 0) { if(MessageTimer->isActive()) { MessageTimer->stop(); } MessageTimer->start(TimeOut); } else { if(MessageTimer->isActive()) { MessageTimer->stop(); } } //发送信号给log emit NewMessage(message); } void MenuBarUI::clearMessage() { ui->label_Status->clear(); //ui->label_History_Status->setText(ui->label_Current_Status->text()); //ui->label_Current_Status->setText(message); } void MenuBarUI::MessageTimeOut(void) { if(MessageTimer->isActive()) { MessageTimer->stop(); } clearMessage(); } void MenuBarUI::setTargetPoint(int Value) { ui->label_TargetPoint->setText(QString::number(Value,'f',0)); } void MenuBarUI::setTargetAlt(QVariant Value) { ui->label_TargteAlt->setText(Value.toString()); } void MenuBarUI::setX(float Value) { ui->label_X->setText(QString::number(Value,'f',1)); } void MenuBarUI::setwp_Dist(float Value) { ui->label_wp_Dist->setText(QString::number(Value,'f',2)); } void MenuBarUI::setTagetAirspeed(QVariant Value) { ui->label_TargetAirSpeed->setText(Value.toString()); } void MenuBarUI::setFlightTime(QTime Value) { ui->label_RecordTime->setText(Value.toString("HH:mm:ss")); }