2025-07-04 18:47:49 +08:00
|
|
|
|
#include <QMessageBox>
|
|
|
|
|
|
#include "measureSettingDlg.h"
|
|
|
|
|
|
#include "bayInfoDlg.h"
|
|
|
|
|
|
#include "graphicsDataModel/fixedPortsModel.h"
|
|
|
|
|
|
#include "graphicsItem/graphicsBaseItem.h"
|
|
|
|
|
|
#include "baseProperty.h"
|
|
|
|
|
|
#include "ui_measureSettingDlg.h"
|
|
|
|
|
|
|
|
|
|
|
|
MeasureSettingDlg::MeasureSettingDlg(QWidget *parent)
|
|
|
|
|
|
: QDialog(parent)
|
|
|
|
|
|
, ui(new Ui::measureSettingDlg)
|
|
|
|
|
|
,_pBay(nullptr)
|
|
|
|
|
|
{
|
|
|
|
|
|
ui->setupUi(this);
|
|
|
|
|
|
this->setWindowFlags(Qt::FramelessWindowHint | windowFlags());
|
|
|
|
|
|
initial();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
MeasureSettingDlg::~MeasureSettingDlg()
|
|
|
|
|
|
{
|
|
|
|
|
|
delete ui;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void MeasureSettingDlg::initial()
|
|
|
|
|
|
{
|
|
|
|
|
|
connect(ui->btn_ok,&QPushButton::clicked,this,&MeasureSettingDlg::onOkClicked);
|
|
|
|
|
|
connect(ui->btn_cancel,&QPushButton::clicked,this,&MeasureSettingDlg::onCancelClicked);
|
|
|
|
|
|
connect(ui->cb_tag,&QComboBox::textActivated,this,&MeasureSettingDlg::onTagChanged);
|
|
|
|
|
|
connect(ui->cb_name,&QComboBox::textActivated,this,&MeasureSettingDlg::onNameChanged);
|
|
|
|
|
|
|
|
|
|
|
|
// 设置正则验证器:1-5000整数
|
|
|
|
|
|
QRegularExpression regExp("^(?:[1-9]|[1-9]\\d{1,2}|[1-4]\\d{3}|5000)$");
|
|
|
|
|
|
QRegularExpressionValidator *validator = new QRegularExpressionValidator(regExp,ui->le_size);
|
|
|
|
|
|
ui->le_size->setValidator(validator);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void MeasureSettingDlg::showDlg()
|
|
|
|
|
|
{
|
|
|
|
|
|
clearData();
|
|
|
|
|
|
QStringList lstTag;
|
|
|
|
|
|
QStringList lstName;
|
|
|
|
|
|
show();
|
|
|
|
|
|
if(_pBay){
|
|
|
|
|
|
auto lst = _pBay->getValidType();
|
|
|
|
|
|
for(auto& item:lst){
|
|
|
|
|
|
lstTag.append(item.tag);
|
|
|
|
|
|
lstName.append(item.name);
|
|
|
|
|
|
}
|
|
|
|
|
|
ui->cb_tag->addItems(lstTag);
|
|
|
|
|
|
ui->cb_name->addItems(lstName);
|
|
|
|
|
|
|
|
|
|
|
|
QStringList lstDevice;
|
|
|
|
|
|
if(_pBay){
|
|
|
|
|
|
FixedPortsModel* pModel = _pBay->getModelController();
|
|
|
|
|
|
if(pModel){
|
|
|
|
|
|
auto map = pModel->allItems();
|
|
|
|
|
|
for(auto& pItem:map){
|
|
|
|
|
|
auto pPro = pItem->getProperty();
|
|
|
|
|
|
if(pPro){
|
|
|
|
|
|
lstDevice.append(pPro->tag()); //根据本图的图元获取对应设备名
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
ui->cb_equip->addItems(lstDevice);
|
2025-07-18 18:26:13 +08:00
|
|
|
|
BaseProperty* pro = _pBay->getProperty();
|
|
|
|
|
|
if(pro){
|
|
|
|
|
|
ui->cb_equip->setCurrentText(pro->tag());
|
|
|
|
|
|
}
|
2025-07-04 18:47:49 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void MeasureSettingDlg::clearData()
|
|
|
|
|
|
{
|
|
|
|
|
|
if(ui->cb_tag->count())
|
|
|
|
|
|
ui->cb_tag->clear();
|
|
|
|
|
|
if(ui->cb_name->count())
|
|
|
|
|
|
ui->cb_name->clear();
|
|
|
|
|
|
ui->le_port->clear();
|
|
|
|
|
|
ui->le_size->clear();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void MeasureSettingDlg::onOkClicked()
|
|
|
|
|
|
{
|
|
|
|
|
|
MeasurementInfo info;
|
|
|
|
|
|
info.tag = ui->cb_tag->currentText();
|
|
|
|
|
|
info.name = ui->cb_name->currentText();
|
|
|
|
|
|
info.equipment = ui->cb_equip->currentText();
|
|
|
|
|
|
info.channel = ui->le_port->text();
|
|
|
|
|
|
info.type = ui->cb_type->currentText();
|
|
|
|
|
|
info.size = ui->le_size->text().toInt();
|
|
|
|
|
|
if(info.channel.isEmpty() || info.size == 0){
|
|
|
|
|
|
QMessageBox::information(NULL, QString("提示"), QString::fromWCharArray(L"参数未设置完毕"));
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if(_pBay)
|
|
|
|
|
|
_pBay->addMeasure(info);
|
|
|
|
|
|
hide();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void MeasureSettingDlg::onCancelClicked()
|
|
|
|
|
|
{
|
|
|
|
|
|
hide();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void MeasureSettingDlg::onTagChanged(const QString& str)
|
|
|
|
|
|
{
|
|
|
|
|
|
auto lst = _pBay->getValidType();
|
|
|
|
|
|
for(auto& item:lst){
|
|
|
|
|
|
if(item.tag == str){
|
|
|
|
|
|
ui->cb_name->setCurrentText(item.name);
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void MeasureSettingDlg::onNameChanged(const QString& str)
|
|
|
|
|
|
{
|
|
|
|
|
|
auto lst = _pBay->getValidType();
|
|
|
|
|
|
for(auto& item:lst){
|
|
|
|
|
|
if(item.name == str){
|
|
|
|
|
|
ui->cb_tag->setCurrentText(item.tag);
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|