#include "createHMIdlg.h" #include "common/frontend/monitor_item.h" #include "dataBase.h" #include "ui_createHMIdlg.h" #include "diagramCavas_p.h" #include CreateHMIdlg::CreateHMIdlg(QWidget *parent) : QDialog(parent) , ui(new Ui::createHMIdlg) { ui->setupUi(this); this->setWindowFlags(Qt::FramelessWindowHint | windowFlags()); initial(); } CreateHMIdlg::~CreateHMIdlg() { delete ui; } void CreateHMIdlg::initial() { connect(ui->btn_cancel,&QPushButton::clicked,this,&CreateHMIdlg::onCancelClicked); connect(ui->btn_ok,&QPushButton::clicked,this,&CreateHMIdlg::onSaveClicked); connect(ui->btn_custom,&QPushButton::clicked,this,&CreateHMIdlg::onCustomClicked); m_timer = new QTimer(this); m_timer->setSingleShot(true); connect(m_timer, &QTimer::timeout, ui->label_info, &QLabel::hide); } void CreateHMIdlg::showDlg() { show(); ui->cb_structure->clear(); QList lstMonitor = DataBase::GetInstance()->getAllMonitor(); for(auto& info:lstMonitor){ ui->cb_structure->addItem(info.name); } ui->cb_structure->addItem("无"); } void CreateHMIdlg::onCancelClicked() { hide(); } void CreateHMIdlg::onCustomClicked() { QString sName = ui->cb_structure->currentText(); emit createCustomHMI(ui->lineEdit->text(),sName); hide(); } void CreateHMIdlg::onSaveClicked() { auto lstHMI = DataBase::GetInstance()->getAllHMI(); QString sSysName = ui->cb_structure->currentText(); //系统图名 QString sName = ui->lineEdit->text(); if(sName.isEmpty()){ showInfoTip("名称不能为空"); return; } if(_pCavasPtr->m_mapMonitorPanel.contains(sName)){ showInfoTip("名称已存在"); return; } for(auto& info:lstHMI){ if(sName == info.name || sName == info.tag) { showInfoTip("名称已存在"); return ; } } emit createHMI(sName,sSysName); hide(); } void CreateHMIdlg::showInfoTip(const QString& text,int durationMs) { ui->label_info->setText(text); ui->label_info->show(); // 停止之前的定时器 m_timer->stop(); // 重新启动定时器 m_timer->start(durationMs); }