#include "MenuBarUI.h" #include "ui_MenuBarUI.h" QTextBrowser *log_te; void myMessageOutput(QtMsgType type, const QMessageLogContext &context, const QString &msg) { QString msgstr; switch (type) { case QtDebugMsg: msgstr = QString::asprintf("Debug: %s (%s:%u, %s)", qPrintable(msg), context.file, context.line, context.function); break; case QtInfoMsg: msgstr = QString::asprintf("Info: %s", qPrintable(msg)); break; case QtWarningMsg: msgstr = QString::asprintf("Warning: %s (%s:%u, %s)", qPrintable(msg), context.file, context.line, context.function); break; case QtCriticalMsg: msgstr = QString::asprintf("Critical: %s (%s:%u, %s)", qPrintable(msg), context.file, context.line, context.function); break; case QtFatalMsg: msgstr = QString::asprintf("Fatal: %s (%s:%u, %s)", qPrintable(msg), context.file, context.line, context.function); break; } log_te->append(msgstr); QTextCursor cursor=log_te->textCursor(); cursor.movePosition(QTextCursor::End); log_te->setTextCursor(cursor); } 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(); //log_te = ui->textBrowser; //qInstallMessageHandler(myMessageOutput); MessageTimer = new QTimer(this); connect(MessageTimer,SIGNAL(timeout()), this,SLOT(MessageTimeOut())); showMessage(tr("Starting...\n"),5000); } MenuBarUI::~MenuBarUI() { delete ui; } void MenuBarUI::onClicked() { qDebug() << "click"; } void MenuBarUI::on_pushButton_Setting_clicked() { emit IndexChanged(0); } void MenuBarUI::on_pushButton_SelfTest_clicked() { emit IndexChanged(1); } void MenuBarUI::on_pushButton_Mission_clicked() { emit IndexChanged(2); } void MenuBarUI::on_pushButton_Flight_clicked() { emit IndexChanged(3); } void MenuBarUI::on_pushButton_Info_clicked() { emit IndexChanged(4); } 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(); }