// // Created by Krad on 2021/12/16. // #include "TopBarWidget.h" #include #include #include #include "components/RollingMessageWidget.h" #include "event/EventCenter.h" #include "errorhandle/GUIErrorLW.h" #include "json/jsonobject.h" TopBarWidget::TopBarWidget(QWidget *parent, Qt::WindowFlags f) : QWidget(parent, f) { auto layout = new QHBoxLayout(this); layout->setMargin(0); auto logo = new QLabel(this); logo->setObjectName("logo"); layout->addWidget(logo); auto company = new QLabel(this); company->setObjectName("company"); layout->addWidget(company); company->setText(tr("浙江衡玖医疗科技")); auto spacerLine0 = new QWidget(this); spacerLine0->setFixedWidth(2); spacerLine0->setObjectName("verSpaceLine"); layout->addWidget(spacerLine0); auto lbl_msglogo = new QLabel(this); lbl_msglogo->setObjectName("msglogo"); layout->addWidget(lbl_msglogo); auto widgetMsg = new QWidget(this); layout->addWidget(widgetMsg,1); widgetMsg->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Preferred); layout->addSpacerItem(new QSpacerItem(10, 10, QSizePolicy::Expanding)); auto statusBarWidget = new QWidget(this); layout->addWidget(statusBarWidget); auto hosp = new QLabel(this); hosp->setText(JsonObject::Instance()->institutionName()); auto nowDate = new QLabel(this); nowDate->setText(QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss")); auto linkIcon = new QLabel(this); linkIcon->setObjectName("link"); QPixmap pixmap(":/icons/link_r.png"); linkIcon->setPixmap(pixmap); connect(EventCenter::Default(), &EventCenter::ReconConnectionUpdated,[linkIcon](QObject*, QObject* msg) { bool* isConnected = (bool*)msg; QPixmap pixmap(*isConnected ? ":/icons/link_g.png" : ":/icons/link_r.png"); linkIcon->setPixmap(QPixmap(pixmap)); }); auto readyIcon = new QLabel(this); readyIcon->setObjectName("ready"); auto lockIcon = new QLabel(this); lockIcon->setText(""); auto status_layout = new QHBoxLayout(statusBarWidget); status_layout->setMargin(0); status_layout->addWidget(hosp); status_layout->addWidget(nowDate); auto spacerLine = new QWidget(this); spacerLine->setFixedWidth(2); spacerLine->setObjectName("verSpaceLine"); layout->addWidget(spacerLine); layout->addWidget(linkIcon); layout->addWidget(readyIcon); layout->addWidget(lockIcon); auto l = new QVBoxLayout(widgetMsg); l->setMargin(0); auto w = new RollingMessageWidget(this); // w->setMessageList(GUIErrorLW::getWARNMessages()); w->setObjectName("borderWidget"); l->addWidget(w); connect(EventCenter::Default(), &EventCenter::ResponseDeviceTemperature, [=](QObject*, QObject* msg) { nowDate->setText(QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss")); if (!msg) return; QString* s = (QString*)msg; lockIcon->setText(QString("%1%2").arg(*s).arg(tr("°C"))); }); // connect(EventCenter::Default(), &EventCenter::WarnStateFlagChange, [=](QObject*, QObject* msg) { // QVariant* var = (QVariant*)msg; // int v = var->toInt(); // int f = 0x00000001; // for (int i = 0; i < 32; ++i) { // int d = (f<updateMessagePriority(i,1); // } else{ // if (w)w->updateMessagePriority(i,-1); // } // } // }); }