add project model ct/pt polarity
This commit is contained in:
parent
73019c5a6d
commit
7c61e7d8e1
|
|
@ -881,23 +881,23 @@ struct DiagramContent {
|
||||||
|
|
||||||
struct PtExtraInfo
|
struct PtExtraInfo
|
||||||
{
|
{
|
||||||
int id;
|
int index = 0;
|
||||||
QString minTransRatio; //最小变比
|
QString scope; //变比标签
|
||||||
QString maxTransRatio; //最大变比
|
QString accuracy; //精度等级标签
|
||||||
QString transRatio; //变比
|
QString volume; //二次负载容量标签
|
||||||
QString accuracyClass; //精度等级
|
QString star; //线圈接法
|
||||||
QString secondaryLoadCapacity; //二次负载容量
|
double ratio; //变比
|
||||||
QString windingConnectionMethod; //绕组接法
|
int polarity = 1; //极性
|
||||||
};
|
};
|
||||||
|
|
||||||
struct CtExtraInfo
|
struct CtExtraInfo
|
||||||
{
|
{
|
||||||
int id;
|
int index = 0;
|
||||||
QString transRatio; //变比
|
QString scope; //变比标签
|
||||||
QString minTransRatio; //最小变比
|
QString accuracy; //精度等级标签
|
||||||
QString maxTransRatio; //最大变比
|
QString volume; //二次负载容量标签
|
||||||
QString accuracyClass; //精度等级
|
double ratio; //变比
|
||||||
QString secondaryLoadCapacity; //二次负载容量
|
int polarity = 1; //极性
|
||||||
};
|
};
|
||||||
|
|
||||||
struct MeasurementInfo //量测
|
struct MeasurementInfo //量测
|
||||||
|
|
@ -922,6 +922,13 @@ struct MeasurementInfo //量测
|
||||||
QString sEdge; //遥信"cause:edge" raising, falling 字符串单选
|
QString sEdge; //遥信"cause:edge" raising, falling 字符串单选
|
||||||
QString sCommand; //"action:command" info, warning, error, critical, exception 字符串单选
|
QString sCommand; //"action:command" info, warning, error, critical, exception 字符串单选
|
||||||
QStringList lstParameter; //"action:parameters" 字符串数组
|
QStringList lstParameter; //"action:parameters" 字符串数组
|
||||||
|
|
||||||
|
QString sWindType; //绕组类型 ctpt
|
||||||
|
int nRatio; //变比
|
||||||
|
int nPolarity; //极性
|
||||||
|
int nIndex; //对应绕组序号
|
||||||
|
|
||||||
|
QString sSymmetry; //对称量测的tag
|
||||||
};
|
};
|
||||||
|
|
||||||
//属性其他参数与层级关系
|
//属性其他参数与层级关系
|
||||||
|
|
@ -950,6 +957,7 @@ struct ExtraProperty
|
||||||
QString page_tag;
|
QString page_tag;
|
||||||
QString bay_tag;
|
QString bay_tag;
|
||||||
QUuid component_uuid;
|
QUuid component_uuid;
|
||||||
|
QString component_tag;
|
||||||
QString group_tag;
|
QString group_tag;
|
||||||
QString type_tag;
|
QString type_tag;
|
||||||
|
|
||||||
|
|
@ -957,6 +965,7 @@ struct ExtraProperty
|
||||||
QString sourceType; // "property", "measurement"
|
QString sourceType; // "property", "measurement"
|
||||||
QVariantMap sourceConfig;
|
QVariantMap sourceConfig;
|
||||||
|
|
||||||
|
bool bDataChanged = false; //数据改变标志(临时)
|
||||||
// 获取完整路径
|
// 获取完整路径
|
||||||
QString getFullName() const {
|
QString getFullName() const {
|
||||||
QStringList parts = {grid_name, zone_name, station_name, currentLevel, bay_name, component_name, group_name, name};
|
QStringList parts = {grid_name, zone_name, station_name, currentLevel, bay_name, component_name, group_name, name};
|
||||||
|
|
|
||||||
|
|
@ -5,5 +5,5 @@ const QMap<AbstractItemType,GraphicsItemType> linkType = {
|
||||||
};
|
};
|
||||||
//类型转换
|
//类型转换
|
||||||
const QMap<int,GraphicsItemType> typeToProGraphic = {
|
const QMap<int,GraphicsItemType> typeToProGraphic = {
|
||||||
{0,GIT_node},{1,GIT_bus},{3,GIT_itemRect},{4,GIT_ctGroup},{6,GIT_ES},{7,GIT_FES},{8,GIT_link},{9,GIT_DS},{10,GIT_DTEDS},{11,GIT_PI},{12,GIT_LA},{13,GIT_cableTer},{14,GIT_cableEnd},{15,GIT_2wTransformer},{16,GIT_3wTransformer}
|
{0,GIT_node},{1,GIT_bus},{3,GIT_itemRect},{4,GIT_ctGroup},{5,GIT_ptGroup},{6,GIT_ES},{7,GIT_FES},{8,GIT_link},{9,GIT_DS},{10,GIT_DTEDS},{11,GIT_PI},{12,GIT_LA},{13,GIT_cableTer},{14,GIT_cableEnd},{15,GIT_2wTransformer},{16,GIT_3wTransformer}
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -48,6 +48,8 @@ set(DIAGRAMCAVAS_HEADER_FILES
|
||||||
include/structDataPropertyModel.h
|
include/structDataPropertyModel.h
|
||||||
include/structDataMeasurementDelegate.h
|
include/structDataMeasurementDelegate.h
|
||||||
include/structDataPropertyDelegate.h
|
include/structDataPropertyDelegate.h
|
||||||
|
include/structDataCauseEditDlg.h
|
||||||
|
include/structDataActionParaDlg.h
|
||||||
include/diagramEditor/editPanel.h
|
include/diagramEditor/editPanel.h
|
||||||
include/diagramEditor/editView.h
|
include/diagramEditor/editView.h
|
||||||
include/diagramEditor/editScene.h
|
include/diagramEditor/editScene.h
|
||||||
|
|
@ -178,6 +180,8 @@ set(DIAGRAMCAVAS_SOURCE_FILES
|
||||||
source/structDataPropertyModel.cpp
|
source/structDataPropertyModel.cpp
|
||||||
source/structDataMeasurementDelegate.cpp
|
source/structDataMeasurementDelegate.cpp
|
||||||
source/structDataPropertyDelegate.cpp
|
source/structDataPropertyDelegate.cpp
|
||||||
|
source/structDataCauseEditDlg.cpp
|
||||||
|
source/structDataActionParaDlg.cpp
|
||||||
source/diagramEditor/editPanel.cpp
|
source/diagramEditor/editPanel.cpp
|
||||||
source/diagramEditor/editView.cpp
|
source/diagramEditor/editView.cpp
|
||||||
source/diagramEditor/editScene.cpp
|
source/diagramEditor/editScene.cpp
|
||||||
|
|
|
||||||
|
|
@ -26,10 +26,12 @@ public:
|
||||||
virtual void setPropertyValue(QVariant) = 0;
|
virtual void setPropertyValue(QVariant) = 0;
|
||||||
void setModelController(FixedPortsModel* p){_curModelController = p;}
|
void setModelController(FixedPortsModel* p){_curModelController = p;}
|
||||||
auto getModelController() {return _curModelController;}
|
auto getModelController() {return _curModelController;}
|
||||||
|
void setExtendProperty(propertyStateInfo info) {_extendInfo = info;} //设置跨组别使用的公共变量(ct,pt使用extend绕组信息)
|
||||||
protected:
|
protected:
|
||||||
QMap<QString,propertyContentInfo> _mapPro;
|
QMap<QString,propertyContentInfo> _mapPro;
|
||||||
QFormLayout* createFormLayout(QWidget* parent);
|
QFormLayout* createFormLayout(QWidget* parent);
|
||||||
FixedPortsModel* _curModelController;
|
FixedPortsModel* _curModelController;
|
||||||
|
propertyStateInfo _extendInfo;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -44,6 +44,7 @@ private:
|
||||||
MeasureSettingDlg* _measureDlg;
|
MeasureSettingDlg* _measureDlg;
|
||||||
QList<measureAttributeType> _validType; //可用的属性列表
|
QList<measureAttributeType> _validType; //可用的属性列表
|
||||||
QMap<QString,MeasurementInfo> _mapMeasure; //量测列表
|
QMap<QString,MeasurementInfo> _mapMeasure; //量测列表
|
||||||
|
bool bShowDouble = false; //显示double界面
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -26,14 +26,20 @@ public:
|
||||||
virtual void setPropertyValue(QVariant);
|
virtual void setPropertyValue(QVariant);
|
||||||
public slots:
|
public slots:
|
||||||
void onAddClicked();
|
void onAddClicked();
|
||||||
void onDeleteClicked();
|
void onTableCustomContextMenuRequested(const QPoint &pos);
|
||||||
protected:
|
protected:
|
||||||
void addTableRow(QString,QString,QString,QString,QString,int id = -1);
|
void addTableRow(QString sRatioRange,QString sAccuracy,QString sVolume,double dRatio,bool bPolarity,int index = -1);
|
||||||
|
private:
|
||||||
|
void updateShowLabel(QStringList lst);
|
||||||
|
void updateLables();
|
||||||
|
void deleteRowWithReindex(int row);
|
||||||
|
void reorderMapAndUpdateIndices(int startRow);
|
||||||
private:
|
private:
|
||||||
Ui::ctExtraInfoDlg *ui;
|
Ui::ctExtraInfoDlg *ui;
|
||||||
QMap<QString,CtExtraInfo> _mapCT;
|
QMap<QString,CtExtraInfo> _mapCT;
|
||||||
QButtonGroup* _stateGroup_ct;
|
QButtonGroup* _stateGroup_ct;
|
||||||
int _count;
|
int _count;
|
||||||
|
QStringList _curLabels;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,9 @@ QT_END_NAMESPACE
|
||||||
class BayInfoDlg;
|
class BayInfoDlg;
|
||||||
struct MeasurementInfo;
|
struct MeasurementInfo;
|
||||||
struct HttpRecommandInfo;
|
struct HttpRecommandInfo;
|
||||||
|
struct propertyStateInfo;
|
||||||
|
struct CtExtraInfo;
|
||||||
|
struct PtExtraInfo;
|
||||||
|
|
||||||
class MeasureSettingDlg : public QDialog
|
class MeasureSettingDlg : public QDialog
|
||||||
{
|
{
|
||||||
|
|
@ -23,8 +26,8 @@ public:
|
||||||
|
|
||||||
void initial();
|
void initial();
|
||||||
void setBay(BayInfoDlg* p) {_pBay = p;}
|
void setBay(BayInfoDlg* p) {_pBay = p;}
|
||||||
void showDlg();
|
void showDlg(int type,propertyStateInfo,bool isDouble = false);
|
||||||
void showDlg(MeasurementInfo); //修改
|
void showDlg(MeasurementInfo,propertyStateInfo,bool isDouble = false); //修改
|
||||||
public slots:
|
public slots:
|
||||||
void onOkClicked();
|
void onOkClicked();
|
||||||
void onCancelClicked();
|
void onCancelClicked();
|
||||||
|
|
@ -41,6 +44,9 @@ public slots:
|
||||||
void onHttpDataUpdated(HttpRecommandInfo); //更新推荐对象列表(若有)
|
void onHttpDataUpdated(HttpRecommandInfo); //更新推荐对象列表(若有)
|
||||||
private:
|
private:
|
||||||
void clearData();
|
void clearData();
|
||||||
|
//void setDbCheckVisible(bool); //设置double勾选可见性
|
||||||
|
void setDbTagVisible(bool); //设置double tag可见性
|
||||||
|
QJsonObject safeToJsonObject(const QVariant& var); //var转json
|
||||||
private:
|
private:
|
||||||
Ui::measureSettingDlg *ui;
|
Ui::measureSettingDlg *ui;
|
||||||
BayInfoDlg* _pBay;
|
BayInfoDlg* _pBay;
|
||||||
|
|
@ -48,6 +54,11 @@ private:
|
||||||
QButtonGroup* _pEventStrategy; //事件策略组
|
QButtonGroup* _pEventStrategy; //事件策略组
|
||||||
QButtonGroup* _pEventYXGroup; //遥信事件组
|
QButtonGroup* _pEventYXGroup; //遥信事件组
|
||||||
bool _curMode; //0新增1修改
|
bool _curMode; //0新增1修改
|
||||||
|
|
||||||
|
QMap<int,CtExtraInfo> _tempCtMap;
|
||||||
|
QMap<int,PtExtraInfo> _tempPtMap;
|
||||||
|
int _curComponentType;
|
||||||
|
bool _isDouble = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -26,9 +26,12 @@ public:
|
||||||
virtual void setPropertyValue(QVariant);
|
virtual void setPropertyValue(QVariant);
|
||||||
public slots:
|
public slots:
|
||||||
void onAddClicked();
|
void onAddClicked();
|
||||||
void onDeleteClicked();
|
void onTableCustomContextMenuRequested(const QPoint &pos);
|
||||||
protected:
|
protected:
|
||||||
void addTableRow(QString,QString,QString,QString,QString,QString,int id = -1);
|
void addTableRow(QString sRatioRange,QString sAccuracy,QString sVolume,QString sStar,double dRatio,bool bPolarity,int index = -1);
|
||||||
|
private:
|
||||||
|
void deleteRowWithReindex(int row);
|
||||||
|
void reorderMapAndUpdateIndices(int startRow);
|
||||||
private:
|
private:
|
||||||
Ui::ptExtraInfoDlg *ui;
|
Ui::ptExtraInfoDlg *ui;
|
||||||
QMap<QString,PtExtraInfo> _mapPT;
|
QMap<QString,PtExtraInfo> _mapPT;
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,29 @@
|
||||||
|
#ifndef STRUCTDATAACTIONPARADLG_H
|
||||||
|
#define STRUCTDATAACTIONPARADLG_H
|
||||||
|
/**
|
||||||
|
* 结构化数据展示中的量测事件action_para配置界面
|
||||||
|
* */
|
||||||
|
#include <QDialog>
|
||||||
|
#include <QListWidget>
|
||||||
|
|
||||||
|
class StructDataActionParaDlg : public QDialog {
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
StructDataActionParaDlg(QWidget* parent = nullptr);
|
||||||
|
|
||||||
|
void setAlarms(const QStringList &alarms);
|
||||||
|
QStringList alarms() const;
|
||||||
|
private slots:
|
||||||
|
void onAddClicked();
|
||||||
|
void onDeleteClicked();
|
||||||
|
private:
|
||||||
|
QListWidget *m_listWidget;
|
||||||
|
QLineEdit *m_editLine;
|
||||||
|
QPushButton *m_btnAdd;
|
||||||
|
QPushButton *m_btnDelete;
|
||||||
|
QPushButton *m_btnClear;
|
||||||
|
QPushButton *m_btnOk;
|
||||||
|
QPushButton *m_btnCancel;
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
@ -0,0 +1,30 @@
|
||||||
|
#ifndef STRUCTDATACAUSEEDITDLG_H
|
||||||
|
#define STRUCTDATACAUSEEDITDLG_H
|
||||||
|
/**
|
||||||
|
* 结构化数据展示中的量测事件cause配置界面
|
||||||
|
* */
|
||||||
|
#include <QDialog>
|
||||||
|
#include <QCheckBox>
|
||||||
|
#include <QDoubleSpinBox>
|
||||||
|
#include <QDialogButtonBox>
|
||||||
|
|
||||||
|
class StructDataCauseEditDlg : public QDialog {
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
explicit StructDataCauseEditDlg(const QMap<QString, double>& initialData,QWidget* parent = nullptr);
|
||||||
|
|
||||||
|
QMap<QString, double> getData() const;
|
||||||
|
void setData(const QMap<QString, double>& data);
|
||||||
|
|
||||||
|
void setupUI();
|
||||||
|
void updateUIFromData();
|
||||||
|
void updateTotal();
|
||||||
|
private:
|
||||||
|
QStringList m_availableKeys;
|
||||||
|
QMap<QString, QCheckBox*> m_checkBoxes;
|
||||||
|
QMap<QString, QDoubleSpinBox*> m_spinBoxes;
|
||||||
|
QDialogButtonBox* m_buttonBox;
|
||||||
|
QMap<QString, double> m_data;
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
@ -48,6 +48,11 @@ private:
|
||||||
QWidget* createNumberEditor(QWidget* parent) const;
|
QWidget* createNumberEditor(QWidget* parent) const;
|
||||||
|
|
||||||
QWidget* createEnableEditor(QWidget* parent) const;
|
QWidget* createEnableEditor(QWidget* parent) const;
|
||||||
|
QWidget* createCauseYCEditor(QWidget* parent, const QModelIndex& index) const; //创建遥测cause输入对话框
|
||||||
|
QWidget* createCauseYXEditor(QWidget* parent) const; //遥信cause
|
||||||
|
QWidget* createCommandEditor(QWidget* parent) const; //事件command
|
||||||
|
QWidget* createActionParaEditor(QWidget* parent) const; //事件actionpara
|
||||||
|
QString getParaType(const QModelIndex& index) const; //获取当前的协议方式
|
||||||
private:
|
private:
|
||||||
QCompleter* _connectCompleter = nullptr; //自动补全的completer
|
QCompleter* _connectCompleter = nullptr; //自动补全的completer
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,10 @@ public:
|
||||||
ColChannel = 10,
|
ColChannel = 10,
|
||||||
ColPacket = 11,
|
ColPacket = 11,
|
||||||
ColOffset = 12,
|
ColOffset = 12,
|
||||||
ColEnable = 13,
|
ColEnable = 13, //事件
|
||||||
|
ColCause = 14, //原因
|
||||||
|
ColCommand = 15, //动作
|
||||||
|
ColParameters = 16, //参数
|
||||||
ColumnCount
|
ColumnCount
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -65,8 +68,8 @@ signals:
|
||||||
void propertyModified(int row, const ExtraProperty& prop);
|
void propertyModified(int row, const ExtraProperty& prop);
|
||||||
private:
|
private:
|
||||||
ExtraProperty* getProperty(int displayRow) const;
|
ExtraProperty* getProperty(int displayRow) const;
|
||||||
QVariant getMeasurementData(const ExtraProperty& prop, int col) const;
|
QVariant getMeasurementData(const ExtraProperty& prop, int col, int role) const;
|
||||||
bool updateMeasurementData(MeasurementInfo* data, int col, const QVariant& value);
|
bool updateMeasurementData(MeasurementInfo* data, int col, const QVariant& value,int role);
|
||||||
QString getTypeText(int type) const;
|
QString getTypeText(int type) const;
|
||||||
QString getSourceText(int source) const;
|
QString getSourceText(int source) const;
|
||||||
int getSourceInt(QString) const;
|
int getSourceInt(QString) const;
|
||||||
|
|
|
||||||
|
|
@ -48,6 +48,8 @@ public:
|
||||||
QStandardItem* root,
|
QStandardItem* root,
|
||||||
QStandardItem* pItem);
|
QStandardItem* pItem);
|
||||||
void updateRecommandLst(QStringList); //更新当前推荐列表
|
void updateRecommandLst(QStringList); //更新当前推荐列表
|
||||||
|
|
||||||
|
void addLog(const QString &message);
|
||||||
public slots:
|
public slots:
|
||||||
void onExitClicked();
|
void onExitClicked();
|
||||||
void onSaveClicked();
|
void onSaveClicked();
|
||||||
|
|
|
||||||
|
|
@ -78,7 +78,7 @@ signals:
|
||||||
public:
|
public:
|
||||||
QMap<QString, ExtraProperty> allProperties;
|
QMap<QString, ExtraProperty> allProperties;
|
||||||
private:
|
private:
|
||||||
QMap<QString, modelDataInfo> m_propertyData;
|
QMap<QString, modelDataInfo> m_propertyData; //参量
|
||||||
QMap<QString, MeasurementInfo> m_measurementData;
|
QMap<QString, MeasurementInfo> m_measurementData; //量测
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,6 @@
|
||||||
#include "measureSettingDlg.h"
|
#include "measureSettingDlg.h"
|
||||||
#include "graphicsItem/electricBayItem.h"
|
#include "graphicsItem/electricBayItem.h"
|
||||||
#include "graphicsDataModel/fixedPortsModel.h"
|
#include "graphicsDataModel/fixedPortsModel.h"
|
||||||
#include "basePropertyManager.h"
|
|
||||||
#include "dataBase.h"
|
#include "dataBase.h"
|
||||||
|
|
||||||
BayInfoDlg::BayInfoDlg(QWidget *parent)
|
BayInfoDlg::BayInfoDlg(QWidget *parent)
|
||||||
|
|
@ -292,13 +291,6 @@ void BayInfoDlg::addMeasure(MeasurementInfo info,int mode)
|
||||||
info.componentUuid = itemId;
|
info.componentUuid = itemId;
|
||||||
_mapMeasure.insert(info.name,info);
|
_mapMeasure.insert(info.name,info);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*for(int i = 0;i < _validType.size();++i){
|
|
||||||
if(_validType.at(i).name == info.name){ //可用类型中移除该类型
|
|
||||||
_validType.removeAt(i);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}*/
|
|
||||||
}
|
}
|
||||||
else if(mode == 1){ //修改
|
else if(mode == 1){ //修改
|
||||||
QModelIndexList selectedIndexes = ui->tableWidget_local->selectionModel()->selectedRows();
|
QModelIndexList selectedIndexes = ui->tableWidget_local->selectionModel()->selectedRows();
|
||||||
|
|
@ -362,7 +354,32 @@ void BayInfoDlg::onAddClicked()
|
||||||
_measureDlg = new MeasureSettingDlg(this);
|
_measureDlg = new MeasureSettingDlg(this);
|
||||||
_measureDlg->setBay(this);
|
_measureDlg->setBay(this);
|
||||||
}
|
}
|
||||||
_measureDlg->showDlg();
|
int curType = 0; //当前对象类型
|
||||||
|
if(_itemProperty)
|
||||||
|
curType = _itemProperty->type();
|
||||||
|
|
||||||
|
bool isDouble = false;
|
||||||
|
if(_bayProperty){ //判断double
|
||||||
|
QString sBayType = _bayProperty->getType();
|
||||||
|
if(sBayType == "分段间隔" || sBayType == "母联间隔"){
|
||||||
|
if(_curModelController){
|
||||||
|
int ctCount = 0;
|
||||||
|
auto lstUuid = _bayProperty->getLstComponent(); //获取间隔下的所有设备
|
||||||
|
for(auto& uid:lstUuid){
|
||||||
|
BaseProperty* pPro = BasePropertyManager::instance().findEntityData(uid);
|
||||||
|
if(pPro){
|
||||||
|
if(pPro->type() == 4){ //该设备是ct
|
||||||
|
ctCount += 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(ctCount == 1) //只有1个ct时置为double
|
||||||
|
isDouble = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
_measureDlg->showDlg(curType,_extendInfo,isDouble);
|
||||||
}
|
}
|
||||||
|
|
||||||
void BayInfoDlg::onDeleteClicked()
|
void BayInfoDlg::onDeleteClicked()
|
||||||
|
|
@ -419,7 +436,7 @@ void BayInfoDlg::onModifyClicked()
|
||||||
_measureDlg = new MeasureSettingDlg(this);
|
_measureDlg = new MeasureSettingDlg(this);
|
||||||
_measureDlg->setBay(this);
|
_measureDlg->setBay(this);
|
||||||
}
|
}
|
||||||
_measureDlg->showDlg(info);
|
_measureDlg->showDlg(info,_extendInfo);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@
|
||||||
#include <QButtonGroup>
|
#include <QButtonGroup>
|
||||||
#include <QJsonArray>
|
#include <QJsonArray>
|
||||||
#include <QJsonDocument>
|
#include <QJsonDocument>
|
||||||
|
#include <QMenu>
|
||||||
|
|
||||||
CtExtraInfoDlg::CtExtraInfoDlg(QWidget *parent)
|
CtExtraInfoDlg::CtExtraInfoDlg(QWidget *parent)
|
||||||
: BaseContentDlg(parent)
|
: BaseContentDlg(parent)
|
||||||
|
|
@ -16,7 +17,12 @@ CtExtraInfoDlg::CtExtraInfoDlg(QWidget *parent)
|
||||||
_stateGroup_ct->addButton(ui->rb_zst_ct,0);
|
_stateGroup_ct->addButton(ui->rb_zst_ct,0);
|
||||||
|
|
||||||
connect(ui->btn_add_ct,&QPushButton::clicked,this,&CtExtraInfoDlg::onAddClicked);
|
connect(ui->btn_add_ct,&QPushButton::clicked,this,&CtExtraInfoDlg::onAddClicked);
|
||||||
_count = 0;
|
|
||||||
|
ui->tb_ct->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
|
||||||
|
_count = 1;
|
||||||
|
|
||||||
|
ui->tb_ct->setContextMenuPolicy(Qt::CustomContextMenu);
|
||||||
|
connect(ui->tb_ct, &QTableWidget::customContextMenuRequested, this, &CtExtraInfoDlg::onTableCustomContextMenuRequested);
|
||||||
}
|
}
|
||||||
|
|
||||||
CtExtraInfoDlg::~CtExtraInfoDlg()
|
CtExtraInfoDlg::~CtExtraInfoDlg()
|
||||||
|
|
@ -84,15 +90,15 @@ QMap<QString,propertyStateInfo> CtExtraInfoDlg::getPropertyValue(BaseProperty* p
|
||||||
{
|
{
|
||||||
QJsonObject object;
|
QJsonObject object;
|
||||||
QJsonArray arr;
|
QJsonArray arr;
|
||||||
for(auto info:_mapCT)
|
for(auto &info:_mapCT)
|
||||||
{
|
{
|
||||||
QJsonObject obj;
|
QJsonObject obj;
|
||||||
obj["id"] = info.id;
|
obj["index"] = info.index;
|
||||||
obj["minTransformationRatio"] = info.minTransRatio;
|
obj["scope"] = info.scope;
|
||||||
obj["maxTransformationRatio"] = info.maxTransRatio;
|
obj["accuracy"] = info.accuracy;
|
||||||
obj["transformationRatio"] = info.transRatio;
|
obj["volume"] = info.volume;
|
||||||
obj["accuracyClass"] = info.accuracyClass;
|
obj["ratio"] = info.ratio;
|
||||||
obj["secondaryLoadCapacity"] = info.secondaryLoadCapacity;
|
obj["polarity"] = info.polarity;
|
||||||
arr.push_back(obj);
|
arr.push_back(obj);
|
||||||
}
|
}
|
||||||
object["winding"] = arr;
|
object["winding"] = arr;
|
||||||
|
|
@ -157,14 +163,14 @@ void CtExtraInfoDlg::setPropertyValue(QVariant var)
|
||||||
for (QJsonValueRef jsonObj : arr)
|
for (QJsonValueRef jsonObj : arr)
|
||||||
{
|
{
|
||||||
QJsonObject node = jsonObj.toObject();
|
QJsonObject node = jsonObj.toObject();
|
||||||
int id = node["id"].toInt();
|
int index = node["index"].toInt();
|
||||||
QString sTr = node["transformationRatio"].toString();
|
QString sRatioRange = node["scope"].toString();
|
||||||
QString sMinTr = node["minTransformationRatio"].toString();
|
QString sAccuracy = node["accuracy"].toString();
|
||||||
QString sMaxTr = node["maxTransformationRatio"].toString();
|
QString sVolume = node["volume"].toString();
|
||||||
QString sAr = node["accuracyClass"].toString();
|
double dRatio = node["ratio"].toDouble();
|
||||||
QString sSlc = node["secondaryLoadCapacity"].toString();
|
bool bPolarity = node["polarity"].toBool();
|
||||||
|
|
||||||
addTableRow(sTr,sMinTr,sMaxTr,sAr,sSlc,id);
|
addTableRow(sRatioRange,sAccuracy,sVolume,dRatio,bPolarity,index);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -172,75 +178,152 @@ void CtExtraInfoDlg::setPropertyValue(QVariant var)
|
||||||
|
|
||||||
void CtExtraInfoDlg::onAddClicked()
|
void CtExtraInfoDlg::onAddClicked()
|
||||||
{
|
{
|
||||||
QString sTr = ui->le_tr_ct->text();
|
QString sRatioRange = ui->le_tr_range_ct->text();
|
||||||
QString sMinTr = ui->le_trMin_ct->text();
|
QString sAccuracy= ui->le_ac_ct->text();
|
||||||
QString sMaxTr = ui->le_trMax_ct->text();
|
QString sVolume = ui->le_slc_ct->text();
|
||||||
QString sAr = ui->le_ac_ct->text();
|
double dRatio = ui->le_tr_ct->text().toDouble();
|
||||||
QString sSlc = ui->le_slc_ct->text();
|
bool bPolarity = ui->cb_polarity->checkState();
|
||||||
addTableRow(sTr,sMinTr,sMaxTr,sAr,sSlc);
|
int index = -1;
|
||||||
|
if(ui->rb_zst_ct->isChecked())
|
||||||
|
index = 0;
|
||||||
|
addTableRow(sRatioRange,sAccuracy,sVolume,dRatio,bPolarity,index);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CtExtraInfoDlg::onDeleteClicked()
|
void CtExtraInfoDlg::onTableCustomContextMenuRequested(const QPoint &pos) {
|
||||||
{
|
QModelIndex index = ui->tb_ct->indexAt(pos);
|
||||||
QPushButton *btn = qobject_cast<QPushButton*>(sender());
|
if (!index.isValid()) {
|
||||||
if (btn) {
|
return;
|
||||||
// 获取按钮在表格中的位置
|
|
||||||
QModelIndex index = ui->tb_ct->indexAt(btn->pos());
|
|
||||||
if (index.isValid()) {
|
|
||||||
QTableWidgetItem* pFirstItem = ui->tb_ct->item(index.row(),0);
|
|
||||||
int id = pFirstItem->data(Qt::UserRole).toInt();
|
|
||||||
_mapCT.remove(QString::number(id));
|
|
||||||
ui->tb_ct->removeRow(index.row());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
void CtExtraInfoDlg::addTableRow(QString sTr,QString sMinTr,QString sMaxTr,QString sAr,QString sSlc,int id)
|
int row = index.row();
|
||||||
|
|
||||||
|
// 创建右键菜单
|
||||||
|
QMenu menu(this);
|
||||||
|
QAction *deleteAction = menu.addAction("删除此行");
|
||||||
|
|
||||||
|
// 连接删除操作
|
||||||
|
connect(deleteAction, &QAction::triggered, this, [this, row]() {
|
||||||
|
deleteRowWithReindex(row);
|
||||||
|
updateLables();
|
||||||
|
});
|
||||||
|
|
||||||
|
menu.exec(ui->tb_ct->viewport()->mapToGlobal(pos));
|
||||||
|
}
|
||||||
|
void CtExtraInfoDlg::addTableRow(QString sRatioRange,QString sAccuracy,QString sVolume,double dRatio,bool bPolarity,int index)
|
||||||
{
|
{
|
||||||
if(_mapCT.contains(QString::number(id)))
|
if(_mapCT.contains(QString::number(index)))
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
CtExtraInfo info;
|
CtExtraInfo info;
|
||||||
if(id == -1){ //缺省id时新建,否则加载
|
if(index == -1){ //缺省id时新建,否则加载
|
||||||
info.id = _count;
|
info.index = _count;
|
||||||
_count += 1;
|
_count += 1;
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
info.id = id;
|
info.index = index;
|
||||||
}
|
}
|
||||||
|
|
||||||
int row = ui->tb_ct->rowCount();
|
int row = ui->tb_ct->rowCount();
|
||||||
ui->tb_ct->insertRow(row);
|
ui->tb_ct->insertRow(row);
|
||||||
|
|
||||||
// 变比(输入框)
|
//index
|
||||||
QTableWidgetItem *item = new QTableWidgetItem(sTr);
|
QTableWidgetItem *item = new QTableWidgetItem(QString::number(info.index));
|
||||||
item->setData(Qt::UserRole,info.id);
|
item->setData(Qt::UserRole,info.index);
|
||||||
ui->tb_ct->setItem(row, 0, item);
|
ui->tb_ct->setItem(row, 0, item);
|
||||||
|
|
||||||
//最小变比
|
//变比范围
|
||||||
ui->tb_ct->setItem(row, 1, new QTableWidgetItem(sMinTr));
|
ui->tb_ct->setItem(row, 1, new QTableWidgetItem(sRatioRange));
|
||||||
|
|
||||||
//最大变比
|
//精度等级
|
||||||
ui->tb_ct->setItem(row, 2, new QTableWidgetItem(sMaxTr));
|
ui->tb_ct->setItem(row, 2, new QTableWidgetItem(sAccuracy));
|
||||||
|
|
||||||
// 精度等级(下拉框)
|
//二次负载容量
|
||||||
ui->tb_ct->setItem(row, 3, new QTableWidgetItem(sAr));
|
ui->tb_ct->setItem(row, 3, new QTableWidgetItem(sVolume));
|
||||||
|
|
||||||
// 二次负载容量(输入框)
|
//变比
|
||||||
ui->tb_ct->setItem(row, 4, new QTableWidgetItem(sSlc));
|
ui->tb_ct->setItem(row, 4, new QTableWidgetItem(QString::number(dRatio)));
|
||||||
|
|
||||||
|
//极性
|
||||||
|
ui->tb_ct->setItem(row, 5, new QTableWidgetItem(QString::number(bPolarity? 1 : -1)));
|
||||||
|
|
||||||
// 删除按钮
|
info.scope = sRatioRange;
|
||||||
QPushButton *deleteBtn = new QPushButton("删除");
|
info.accuracy = sAccuracy;
|
||||||
connect(deleteBtn, &QPushButton::clicked, this, &CtExtraInfoDlg::onDeleteClicked);
|
info.volume = sVolume;
|
||||||
ui->tb_ct->setCellWidget(row, 5, deleteBtn);
|
info.ratio = dRatio;
|
||||||
|
info.polarity = bPolarity? 1 : -1;
|
||||||
|
_mapCT.insert(QString::number(info.index),info);
|
||||||
|
|
||||||
info.transRatio = sTr;
|
updateLables();
|
||||||
info.minTransRatio = sMinTr;
|
}
|
||||||
info.maxTransRatio = sMaxTr;
|
|
||||||
info.accuracyClass = sAr;
|
void CtExtraInfoDlg::updateShowLabel(QStringList lst)
|
||||||
info.secondaryLoadCapacity = sSlc;
|
{
|
||||||
_mapCT.insert(QString::number(info.id),info);
|
_curLabels = lst;
|
||||||
|
ui->label_title_ct->setText(_curLabels.join(" "));
|
||||||
|
}
|
||||||
|
|
||||||
|
void CtExtraInfoDlg::updateLables()
|
||||||
|
{
|
||||||
|
QStringList lst; //更新显示标签
|
||||||
|
for(auto& info:_mapCT){
|
||||||
|
QString sLabel = info.scope+" "+info.accuracy+" "+info.volume;
|
||||||
|
lst.append(sLabel);
|
||||||
|
}
|
||||||
|
updateShowLabel(lst);
|
||||||
|
}
|
||||||
|
|
||||||
|
void CtExtraInfoDlg::deleteRowWithReindex(int row) {
|
||||||
|
// 1. 获取要删除的ID
|
||||||
|
QTableWidgetItem* pFirstItem = ui->tb_ct->item(row, 0);
|
||||||
|
if (!pFirstItem) return;
|
||||||
|
|
||||||
|
int deletedId = pFirstItem->data(Qt::UserRole).toInt();
|
||||||
|
QString deletedKey = QString::number(deletedId);
|
||||||
|
|
||||||
|
// 2. 从表格中删除行
|
||||||
|
ui->tb_ct->removeRow(row);
|
||||||
|
|
||||||
|
// 3. 从_mapCT中删除对应项
|
||||||
|
if (_mapCT.contains(deletedKey)) {
|
||||||
|
_mapCT.remove(deletedKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 4. 重新排序和更新index
|
||||||
|
reorderMapAndUpdateIndices(row);
|
||||||
|
}
|
||||||
|
|
||||||
|
void CtExtraInfoDlg::reorderMapAndUpdateIndices(int startRow) {
|
||||||
|
int totalRows = ui->tb_ct->rowCount();
|
||||||
|
|
||||||
|
// 遍历从startRow开始的所有行
|
||||||
|
for (int row = startRow; row < totalRows; ++row) {
|
||||||
|
QTableWidgetItem* idItem = ui->tb_ct->item(row, 0);
|
||||||
|
if (!idItem) continue;
|
||||||
|
|
||||||
|
int currentId = idItem->data(Qt::UserRole).toInt();
|
||||||
|
QString currentKey = QString::number(currentId);
|
||||||
|
|
||||||
|
// 计算新的ID和索引
|
||||||
|
int newId = row + 1; // 新的ID
|
||||||
|
int newIndex = row + 1; // 新的索引
|
||||||
|
|
||||||
|
if (_mapCT.contains(currentKey)) {
|
||||||
|
// 获取并更新数据
|
||||||
|
CtExtraInfo info = _mapCT[currentKey];
|
||||||
|
info.index = newIndex;
|
||||||
|
|
||||||
|
// 从旧位置移除
|
||||||
|
_mapCT.remove(currentKey);
|
||||||
|
|
||||||
|
// 添加到新位置
|
||||||
|
QString newKey = QString::number(newId);
|
||||||
|
_mapCT[newKey] = info;
|
||||||
|
|
||||||
|
// 更新表格显示
|
||||||
|
idItem->setText(QString::number(newId));
|
||||||
|
idItem->setData(Qt::UserRole, newId);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -42,8 +42,8 @@ QMap<int,QList<DiagramEditorBlockInfo>> DiagramEditorStructContainer::getMapBloc
|
||||||
|
|
||||||
void DiagramEditorStructContainer::clearData()
|
void DiagramEditorStructContainer::clearData()
|
||||||
{
|
{
|
||||||
for(auto &lstCon:_mapBlocks){
|
/*for(auto &lstCon:_mapBlocks){
|
||||||
qDeleteAll(lstCon);
|
qDeleteAll(lstCon);
|
||||||
}
|
}*/
|
||||||
_mapBlocks.clear();
|
_mapBlocks.clear();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1067,6 +1067,7 @@ void FixedPortsModel::saveNode(int nPageId)
|
||||||
}
|
}
|
||||||
extraPro.component_name = pData->name();
|
extraPro.component_name = pData->name();
|
||||||
extraPro.component_uuid = pData->uuid();
|
extraPro.component_uuid = pData->uuid();
|
||||||
|
extraPro.component_tag = tempTag;
|
||||||
extraPro.group_tag = val.groupName;
|
extraPro.group_tag = val.groupName;
|
||||||
|
|
||||||
for(auto& groupInfo:groupMap){
|
for(auto& groupInfo:groupMap){
|
||||||
|
|
@ -1081,6 +1082,7 @@ void FixedPortsModel::saveNode(int nPageId)
|
||||||
extraPro.code = extraPro.getFullName();
|
extraPro.code = extraPro.getFullName();
|
||||||
extraPro.sourceType = "property";
|
extraPro.sourceType = "property";
|
||||||
extraPro.sourceConfig.insert("modelName",pData->modelName());
|
extraPro.sourceConfig.insert("modelName",pData->modelName());
|
||||||
|
extraPro.connect_para = sGridTag+"."+sZoneTag+"."+sStationTag+"."+extraPro.bay_tag+"."+tempTag+"."+extraPro.group_tag+"."+extraPro.tag;
|
||||||
//取data:模型.属性组.id.属性名
|
//取data:模型.属性组.id.属性名
|
||||||
|
|
||||||
bool exist = DataBase::GetInstance()->ifExtraPropertyExist(extraPro.code);
|
bool exist = DataBase::GetInstance()->ifExtraPropertyExist(extraPro.code);
|
||||||
|
|
@ -1145,14 +1147,23 @@ void FixedPortsModel::saveNode(int nPageId)
|
||||||
objAction["parameters"] = arrPara;
|
objAction["parameters"] = arrPara;
|
||||||
objEventPlan["action"] = objAction;
|
objEventPlan["action"] = objAction;
|
||||||
|
|
||||||
QString tempTag = info.tag+"_"+_pageName; //tag后加工程名,保持全局唯一
|
QJsonObject objBinding;
|
||||||
|
if(!info.sWindType.isEmpty()){
|
||||||
|
QJsonObject objWind;
|
||||||
|
objWind["ratio"] = info.nRatio;
|
||||||
|
objWind["polarity"] = info.nPolarity;
|
||||||
|
objWind["index"] = info.nIndex;
|
||||||
|
objBinding[info.sWindType] = objWind;
|
||||||
|
}
|
||||||
|
|
||||||
|
QString tempMeasure = info.tag+"_"+_pageName; //tag后加工程名,保持全局唯一
|
||||||
|
|
||||||
bool val = DataBase::GetInstance()->ifMeasureExist(info.name,pData->uuid());
|
bool val = DataBase::GetInstance()->ifMeasureExist(info.name,pData->uuid());
|
||||||
if(val){
|
if(val){
|
||||||
DataBase::GetInstance()->updateMeasurement(info.name,tpe,objDataSource,objEventPlan,info.size,pData->uuid());
|
DataBase::GetInstance()->updateMeasurement(info.name,tpe,objDataSource,objEventPlan,objBinding,info.size,pData->uuid());
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
DataBase::GetInstance()->insertMeasurement(info.name,tempTag,tpe,objDataSource,objEventPlan,info.size,info.bayUuid,info.componentUuid);
|
DataBase::GetInstance()->insertMeasurement(info.name,tempMeasure,tpe,objDataSource,objEventPlan,objBinding,info.size,info.bayUuid,info.componentUuid);
|
||||||
}
|
}
|
||||||
|
|
||||||
for(int i = 0;i < lstDataBase.size();++i) //从数据库记录中移除操作过的对象
|
for(int i = 0;i < lstDataBase.size();++i) //从数据库记录中移除操作过的对象
|
||||||
|
|
@ -1172,7 +1183,7 @@ void FixedPortsModel::saveNode(int nPageId)
|
||||||
|
|
||||||
ExtraProperty extraPro; //层级信息
|
ExtraProperty extraPro; //层级信息
|
||||||
extraPro.name = info.name;
|
extraPro.name = info.name;
|
||||||
extraPro.tag = tempTag;
|
extraPro.tag = tempMeasure;
|
||||||
extraPro.grid_tag = sGridTag;
|
extraPro.grid_tag = sGridTag;
|
||||||
extraPro.grid_name = sGridName;
|
extraPro.grid_name = sGridName;
|
||||||
extraPro.zone_tag = sZoneTag;
|
extraPro.zone_tag = sZoneTag;
|
||||||
|
|
@ -1188,6 +1199,7 @@ void FixedPortsModel::saveNode(int nPageId)
|
||||||
}
|
}
|
||||||
extraPro.component_name = pData->name();
|
extraPro.component_name = pData->name();
|
||||||
extraPro.component_uuid = pData->uuid();
|
extraPro.component_uuid = pData->uuid();
|
||||||
|
extraPro.component_tag = tempTag;
|
||||||
extraPro.group_tag = "bay";
|
extraPro.group_tag = "bay";
|
||||||
|
|
||||||
for(auto& groupInfo:groupMap){
|
for(auto& groupInfo:groupMap){
|
||||||
|
|
@ -1211,6 +1223,7 @@ void FixedPortsModel::saveNode(int nPageId)
|
||||||
}
|
}
|
||||||
extraPro.code = extraPro.getFullName();
|
extraPro.code = extraPro.getFullName();
|
||||||
extraPro.sourceType = "measurement";
|
extraPro.sourceType = "measurement";
|
||||||
|
extraPro.connect_para = sGridTag+"."+sZoneTag+"."+sStationTag+"."+extraPro.bay_tag+"."+tempTag+"."+extraPro.group_tag+"."+extraPro.tag;
|
||||||
//取data 量测tag
|
//取data 量测tag
|
||||||
|
|
||||||
bool exist = DataBase::GetInstance()->ifExtraPropertyExist(extraPro.code);
|
bool exist = DataBase::GetInstance()->ifExtraPropertyExist(extraPro.code);
|
||||||
|
|
|
||||||
|
|
@ -117,8 +117,8 @@ void ItemPropertyDlg::onOkClicked()
|
||||||
for (QJsonValueRef jsonObj : arr)
|
for (QJsonValueRef jsonObj : arr)
|
||||||
{
|
{
|
||||||
QJsonObject node = jsonObj.toObject();
|
QJsonObject node = jsonObj.toObject();
|
||||||
QString sWinding = node["windingConnectionMethod"].toString();
|
QString sWinding = node["star"].toString();
|
||||||
if(sWinding == "Y"){
|
if(sWinding == "Yn"){
|
||||||
lst.append(1);
|
lst.append(1);
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
|
|
@ -165,6 +165,48 @@ void ItemPropertyDlg::onGroupSelected(const QString& str)
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
pDlg->setPropertyValue(QVariant::fromValue(static_cast<void*>(pPro)));
|
pDlg->setPropertyValue(QVariant::fromValue(static_cast<void*>(pPro)));
|
||||||
|
bool bWindExist = false;
|
||||||
|
if(pPro->type() == 4 || pPro->type() == 5){ //ct和pt情况,bay组需要跨界面使用extend信息
|
||||||
|
if(groupValue_.contains("base_extend")){ //实时数据中已包含(已设置)
|
||||||
|
if(groupValue_["base_extend"].mapInfo.contains(curUuid_)){
|
||||||
|
QMap<QString,propertyStateInfo> extendMap = groupValue_["base_extend"].mapInfo.value(curUuid_);
|
||||||
|
if(pPro->type() == 4){
|
||||||
|
if(extendMap.contains("ct_winding")){
|
||||||
|
propertyStateInfo val = extendMap.value("ct_winding");
|
||||||
|
pDlg->setExtendProperty(val);
|
||||||
|
bWindExist = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(pPro->type() == 5){
|
||||||
|
if(extendMap.contains("pt_sec_winding")){
|
||||||
|
propertyStateInfo val = extendMap.value("pt_sec_winding");
|
||||||
|
pDlg->setExtendProperty(val);
|
||||||
|
bWindExist = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!bWindExist){
|
||||||
|
if(groupViews_.contains("base_extend")){ //实时数据未包含,从extend界面读取
|
||||||
|
BaseContentDlg* pExtendDlg = qobject_cast<BaseContentDlg*>(groupViews_.value("base_extend"));
|
||||||
|
QMap<QString,propertyStateInfo> mapPro = pExtendDlg->getPropertyValue(pPro);
|
||||||
|
|
||||||
|
if(pPro->type() == 4 ){ //ct
|
||||||
|
if(mapPro.contains("ct_winding")){
|
||||||
|
propertyStateInfo val = mapPro.value("ct_winding");
|
||||||
|
pDlg->setExtendProperty(val);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(pPro->type() == 5){ //pt
|
||||||
|
if(mapPro.contains("pt_sec_winding")){
|
||||||
|
propertyStateInfo val = mapPro.value("pt_sec_winding");
|
||||||
|
pDlg->setExtendProperty(val);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
#include <QMessageBox>
|
#include <QMessageBox>
|
||||||
|
#include <QJsonDocument>
|
||||||
#include "measureSettingDlg.h"
|
#include "measureSettingDlg.h"
|
||||||
#include "bayInfoDlg.h"
|
#include "bayInfoDlg.h"
|
||||||
#include "graphicsDataModel/fixedPortsModel.h"
|
#include "graphicsDataModel/fixedPortsModel.h"
|
||||||
|
|
@ -56,8 +57,82 @@ void MeasureSettingDlg::initial()
|
||||||
ui->cb_rule->setItemData(1, 2);
|
ui->cb_rule->setItemData(1, 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MeasureSettingDlg::showDlg()
|
void MeasureSettingDlg::showDlg(int type,propertyStateInfo proInfo,bool isDouble)
|
||||||
{
|
{
|
||||||
|
ui->label_wind->setVisible(false);
|
||||||
|
ui->cb_windIndex->setVisible(false);
|
||||||
|
//setDbCheckVisible(false);
|
||||||
|
if(isDouble)
|
||||||
|
setDbTagVisible(true);
|
||||||
|
else
|
||||||
|
setDbTagVisible(false);
|
||||||
|
_isDouble = isDouble;
|
||||||
|
if(type == 4){ //ct,显示index选择
|
||||||
|
ui->label_wind->setVisible(true);
|
||||||
|
ui->cb_windIndex->setVisible(true);
|
||||||
|
ui->cb_windIndex->clear();
|
||||||
|
|
||||||
|
QMap<int,CtExtraInfo> map;
|
||||||
|
|
||||||
|
/*QString jsonString = proInfo.defaultValue.toString();
|
||||||
|
QJsonDocument jsonDocument = QJsonDocument::fromJson(jsonString.toUtf8().data());
|
||||||
|
QJsonObject obj = jsonDocument.object();*/
|
||||||
|
|
||||||
|
QJsonObject obj = safeToJsonObject(proInfo.defaultValue);
|
||||||
|
|
||||||
|
if(obj.contains("winding")){
|
||||||
|
QJsonArray arr = obj["winding"].toArray();
|
||||||
|
for (QJsonValueRef jsonObj : arr)
|
||||||
|
{
|
||||||
|
CtExtraInfo info;
|
||||||
|
QJsonObject node = jsonObj.toObject();
|
||||||
|
info.index = node["index"].toInt();
|
||||||
|
info.scope = node["scope"].toString();
|
||||||
|
info.accuracy= node["accuracy"].toString();
|
||||||
|
info.volume = node["volume"].toString();
|
||||||
|
info.ratio = node["ratio"].toDouble();
|
||||||
|
info.polarity= node["polarity"].toBool();
|
||||||
|
map.insert(info.index,info);
|
||||||
|
|
||||||
|
ui->cb_windIndex->addItem(QString::number(info.index));
|
||||||
|
}
|
||||||
|
_tempCtMap = map;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(type == 5){ //pt,显示index选择
|
||||||
|
ui->label_wind->setVisible(true);
|
||||||
|
ui->cb_windIndex->setVisible(true);
|
||||||
|
|
||||||
|
ui->cb_windIndex->clear();
|
||||||
|
QMap<int,PtExtraInfo> map;
|
||||||
|
|
||||||
|
/*QString jsonString = proInfo.defaultValue.toString();
|
||||||
|
QJsonDocument jsonDocument = QJsonDocument::fromJson(jsonString.toUtf8().data());
|
||||||
|
QJsonObject obj = jsonDocument.object();*/
|
||||||
|
QJsonObject obj = safeToJsonObject(proInfo.defaultValue);
|
||||||
|
|
||||||
|
if(obj.contains("winding")){
|
||||||
|
QJsonArray arr = obj["winding"].toArray();
|
||||||
|
for (QJsonValueRef jsonObj : arr)
|
||||||
|
{
|
||||||
|
PtExtraInfo info;
|
||||||
|
QJsonObject node = jsonObj.toObject();
|
||||||
|
info.index = node["index"].toInt();
|
||||||
|
info.scope = node["scope"].toString();
|
||||||
|
info.accuracy= node["accuracy"].toString();
|
||||||
|
info.volume = node["volume"].toString();
|
||||||
|
info.star = node["star"].toString();
|
||||||
|
info.ratio = node["ratio"].toDouble();
|
||||||
|
info.polarity= node["polarity"].toBool();
|
||||||
|
map.insert(info.index,info);
|
||||||
|
|
||||||
|
ui->cb_windIndex->addItem(QString::number(info.index));
|
||||||
|
}
|
||||||
|
_tempPtMap = map;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ui->cb_windIndex->setCurrentIndex(0);
|
||||||
|
_curComponentType = type;
|
||||||
_curMode = 0;
|
_curMode = 0;
|
||||||
clearData();
|
clearData();
|
||||||
QStringList lstTag;
|
QStringList lstTag;
|
||||||
|
|
@ -87,8 +162,87 @@ void MeasureSettingDlg::showDlg()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MeasureSettingDlg::showDlg(MeasurementInfo info)
|
void MeasureSettingDlg::showDlg(MeasurementInfo info,propertyStateInfo proInfo,bool isDouble)
|
||||||
{
|
{
|
||||||
|
ui->label_wind->setVisible(false);
|
||||||
|
ui->cb_windIndex->setVisible(false);
|
||||||
|
if(isDouble)
|
||||||
|
setDbTagVisible(true);
|
||||||
|
else
|
||||||
|
setDbTagVisible(false);
|
||||||
|
_isDouble = isDouble;
|
||||||
|
if(info.sWindType == "ct"){ //ct,显示index选择
|
||||||
|
ui->label_wind->setVisible(true);
|
||||||
|
ui->cb_windIndex->setVisible(true);
|
||||||
|
ui->cb_windIndex->clear();
|
||||||
|
QMap<int,CtExtraInfo> map;
|
||||||
|
|
||||||
|
/*QString jsonString = proInfo.defaultValue.toString();
|
||||||
|
QJsonDocument jsonDocument = QJsonDocument::fromJson(jsonString.toUtf8().data());
|
||||||
|
QJsonObject obj = jsonDocument.object();*/
|
||||||
|
QJsonObject obj = safeToJsonObject(proInfo.defaultValue);
|
||||||
|
|
||||||
|
if(obj.contains("winding")){
|
||||||
|
QJsonArray arr = obj["winding"].toArray();
|
||||||
|
for (QJsonValueRef jsonObj : arr)
|
||||||
|
{
|
||||||
|
CtExtraInfo info;
|
||||||
|
QJsonObject node = jsonObj.toObject();
|
||||||
|
info.index = node["index"].toInt();
|
||||||
|
info.scope = node["scope"].toString();
|
||||||
|
info.accuracy= node["accuracy"].toString();
|
||||||
|
info.volume = node["volume"].toString();
|
||||||
|
info.ratio = node["ratio"].toDouble();
|
||||||
|
info.polarity= node["polarity"].toBool();
|
||||||
|
map.insert(info.index,info);
|
||||||
|
|
||||||
|
ui->cb_windIndex->addItem(QString::number(info.index));
|
||||||
|
}
|
||||||
|
ui->cb_windIndex->setCurrentText(QString::number(info.nIndex));
|
||||||
|
_tempCtMap = map;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(info.sWindType == "pt"){ //pt,显示index选择
|
||||||
|
ui->label_wind->setVisible(true);
|
||||||
|
ui->cb_windIndex->setVisible(true);
|
||||||
|
|
||||||
|
ui->cb_windIndex->clear();
|
||||||
|
QMap<int,PtExtraInfo> map;
|
||||||
|
|
||||||
|
/*QString jsonString = proInfo.defaultValue.toString();
|
||||||
|
QJsonDocument jsonDocument = QJsonDocument::fromJson(jsonString.toUtf8().data());
|
||||||
|
QJsonObject obj = jsonDocument.object();*/
|
||||||
|
QJsonObject obj = safeToJsonObject(proInfo.defaultValue);
|
||||||
|
|
||||||
|
if(obj.contains("winding")){
|
||||||
|
QJsonArray arr = obj["winding"].toArray();
|
||||||
|
for (QJsonValueRef jsonObj : arr)
|
||||||
|
{
|
||||||
|
PtExtraInfo info;
|
||||||
|
QJsonObject node = jsonObj.toObject();
|
||||||
|
info.index = node["index"].toInt();
|
||||||
|
info.scope = node["scope"].toString();
|
||||||
|
info.accuracy= node["accuracy"].toString();
|
||||||
|
info.volume = node["volume"].toString();
|
||||||
|
info.star = node["star"].toString();
|
||||||
|
info.ratio = node["ratio"].toDouble();
|
||||||
|
info.polarity= node["polarity"].toBool();
|
||||||
|
map.insert(info.index,info);
|
||||||
|
|
||||||
|
ui->cb_windIndex->addItem(QString::number(info.index));
|
||||||
|
}
|
||||||
|
ui->cb_windIndex->setCurrentText(QString::number(info.nIndex));
|
||||||
|
_tempPtMap = map;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(info.sWindType == "ct"){
|
||||||
|
_curComponentType = 4;
|
||||||
|
}
|
||||||
|
else if(info.sWindType == "pt"){
|
||||||
|
_curComponentType = 5;
|
||||||
|
}
|
||||||
|
|
||||||
show();
|
show();
|
||||||
_curMode = 1;
|
_curMode = 1;
|
||||||
clearData();
|
clearData();
|
||||||
|
|
@ -196,6 +350,54 @@ void MeasureSettingDlg::clearData()
|
||||||
ui->lst_parameter->clear();
|
ui->lst_parameter->clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*void MeasureSettingDlg::setDbCheckVisible(bool val)
|
||||||
|
{
|
||||||
|
if(val){
|
||||||
|
ui->label_dbCheck->setVisible(true);
|
||||||
|
ui->cB_dbCheck->setVisible(true);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
ui->label_dbCheck->setVisible(false);
|
||||||
|
ui->cB_dbCheck->setVisible(false);
|
||||||
|
}
|
||||||
|
}*/
|
||||||
|
|
||||||
|
void MeasureSettingDlg::setDbTagVisible(bool val)
|
||||||
|
{
|
||||||
|
if(val){
|
||||||
|
ui->label_dbTag->setVisible(true);
|
||||||
|
ui->le_dbTag->setVisible(true);
|
||||||
|
ui->label_dbName->setVisible(true);
|
||||||
|
ui->le_dbName->setVisible(true);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
ui->label_dbTag->setVisible(false);
|
||||||
|
ui->le_dbTag->setVisible(false);
|
||||||
|
ui->label_dbName->setVisible(false);
|
||||||
|
ui->le_dbName->setVisible(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
QJsonObject MeasureSettingDlg::safeToJsonObject(const QVariant& var) {
|
||||||
|
switch (var.typeId()) {
|
||||||
|
case QMetaType::QJsonObject:
|
||||||
|
return var.toJsonObject();
|
||||||
|
case QMetaType::QString: {
|
||||||
|
QJsonParseError error;
|
||||||
|
auto doc = QJsonDocument::fromJson(
|
||||||
|
var.toString().toUtf8(),
|
||||||
|
&error
|
||||||
|
);
|
||||||
|
if (error.error == QJsonParseError::NoError)
|
||||||
|
return doc.object();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return QJsonObject();
|
||||||
|
}
|
||||||
|
|
||||||
void MeasureSettingDlg::onOkClicked()
|
void MeasureSettingDlg::onOkClicked()
|
||||||
{
|
{
|
||||||
MeasurementInfo info;
|
MeasurementInfo info;
|
||||||
|
|
@ -249,8 +451,43 @@ void MeasureSettingDlg::onOkClicked()
|
||||||
info.lstParameter.append(item->text());
|
info.lstParameter.append(item->text());
|
||||||
}
|
}
|
||||||
|
|
||||||
if(_pBay)
|
if(_curComponentType == 4 || _curComponentType == 5){
|
||||||
|
int nNumber;
|
||||||
|
QString sNumber = ui->cb_windIndex->currentText();
|
||||||
|
nNumber = sNumber.isEmpty()?-1:sNumber.toInt();
|
||||||
|
if(nNumber != -1){
|
||||||
|
if(_curComponentType == 4){ //ct
|
||||||
|
info.sWindType = "ct";
|
||||||
|
info.nIndex = nNumber;
|
||||||
|
info.nRatio = _tempCtMap.value(nNumber).ratio;
|
||||||
|
info.nPolarity = _tempCtMap.value(nNumber).polarity;
|
||||||
|
}
|
||||||
|
else if(_curComponentType == 5){ //pt
|
||||||
|
info.sWindType = "pt";
|
||||||
|
info.nIndex = nNumber;
|
||||||
|
info.nRatio = _tempPtMap.value(nNumber).ratio;
|
||||||
|
info.nPolarity = _tempPtMap.value(nNumber).polarity;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(_pBay){
|
||||||
|
if(_isDouble)
|
||||||
|
info.sSymmetry = ui->le_dbTag->text(); //与double互相记录
|
||||||
_pBay->addMeasure(info,_curMode);
|
_pBay->addMeasure(info,_curMode);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(_isDouble){
|
||||||
|
MeasurementInfo dbInfo;
|
||||||
|
dbInfo = info;
|
||||||
|
dbInfo.tag = ui->le_dbTag->text();
|
||||||
|
dbInfo.name = ui->le_dbName->text();
|
||||||
|
dbInfo.nPolarity = -info.nPolarity;
|
||||||
|
dbInfo.sSymmetry = info.tag; //与source互相记录
|
||||||
|
|
||||||
|
if(_pBay)
|
||||||
|
_pBay->addMeasure(dbInfo,_curMode);
|
||||||
|
}
|
||||||
|
|
||||||
hide();
|
hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -262,23 +499,41 @@ void MeasureSettingDlg::onCancelClicked()
|
||||||
void MeasureSettingDlg::onTagChanged(const QString& str)
|
void MeasureSettingDlg::onTagChanged(const QString& str)
|
||||||
{
|
{
|
||||||
auto lst = _pBay->getValidType();
|
auto lst = _pBay->getValidType();
|
||||||
|
QString curItemName;
|
||||||
|
if(_pBay){
|
||||||
|
auto pItemData = _pBay->getProperty();
|
||||||
|
curItemName = "_"+pItemData->name();
|
||||||
|
}
|
||||||
for(auto& item:lst){
|
for(auto& item:lst){
|
||||||
if(item.tag == str){
|
if(item.tag+curItemName == str){
|
||||||
ui->cb_name->setCurrentText(item.name);
|
ui->cb_name->setCurrentText(item.name+curItemName);
|
||||||
return;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(_isDouble){
|
||||||
|
ui->le_dbTag->setText(str+"double");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MeasureSettingDlg::onNameChanged(const QString& str)
|
void MeasureSettingDlg::onNameChanged(const QString& str)
|
||||||
{
|
{
|
||||||
auto lst = _pBay->getValidType();
|
auto lst = _pBay->getValidType();
|
||||||
|
QString curItemName;
|
||||||
|
if(_pBay){
|
||||||
|
auto pItemData = _pBay->getProperty();
|
||||||
|
curItemName = "_"+pItemData->name();
|
||||||
|
}
|
||||||
for(auto& item:lst){
|
for(auto& item:lst){
|
||||||
if(item.name == str){
|
if(item.name+curItemName == str){
|
||||||
ui->cb_tag->setCurrentText(item.tag);
|
ui->cb_tag->setCurrentText(item.tag+curItemName);
|
||||||
return;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(_isDouble){
|
||||||
|
ui->le_dbName->setText(str+"对称");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MeasureSettingDlg::onRuleIndexChanged(int n)
|
void MeasureSettingDlg::onRuleIndexChanged(int n)
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@
|
||||||
#include <QButtonGroup>
|
#include <QButtonGroup>
|
||||||
#include <QJsonArray>
|
#include <QJsonArray>
|
||||||
#include <QJsonDocument>
|
#include <QJsonDocument>
|
||||||
|
#include <QMenu>
|
||||||
|
|
||||||
PtExtraInfoDlg::PtExtraInfoDlg(QWidget *parent)
|
PtExtraInfoDlg::PtExtraInfoDlg(QWidget *parent)
|
||||||
: BaseContentDlg(parent)
|
: BaseContentDlg(parent)
|
||||||
|
|
@ -16,7 +17,11 @@ PtExtraInfoDlg::PtExtraInfoDlg(QWidget *parent)
|
||||||
_stateGroup_pt->addButton(ui->rb_spt_pt,0);
|
_stateGroup_pt->addButton(ui->rb_spt_pt,0);
|
||||||
|
|
||||||
connect(ui->btn_add_pt,&QPushButton::clicked,this,&PtExtraInfoDlg::onAddClicked);
|
connect(ui->btn_add_pt,&QPushButton::clicked,this,&PtExtraInfoDlg::onAddClicked);
|
||||||
_count = 0;
|
ui->tb_pt->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
|
||||||
|
_count = 1;
|
||||||
|
|
||||||
|
ui->tb_pt->setContextMenuPolicy(Qt::CustomContextMenu);
|
||||||
|
connect(ui->tb_pt, &QTableWidget::customContextMenuRequested, this, &PtExtraInfoDlg::onTableCustomContextMenuRequested);
|
||||||
}
|
}
|
||||||
|
|
||||||
PtExtraInfoDlg::~PtExtraInfoDlg()
|
PtExtraInfoDlg::~PtExtraInfoDlg()
|
||||||
|
|
@ -80,16 +85,16 @@ QMap<QString,propertyStateInfo> PtExtraInfoDlg::getPropertyValue(BaseProperty* p
|
||||||
{
|
{
|
||||||
QJsonObject object;
|
QJsonObject object;
|
||||||
QJsonArray arr;
|
QJsonArray arr;
|
||||||
for(auto info:_mapPT)
|
for(auto &info:_mapPT)
|
||||||
{
|
{
|
||||||
QJsonObject obj;
|
QJsonObject obj;
|
||||||
obj["id"] = info.id;
|
obj["index"] = info.index;
|
||||||
obj["transformationRatio"] = info.transRatio;
|
obj["scope"] = info.scope;
|
||||||
obj["minTransformationRatio"] = info.minTransRatio;
|
obj["accuracy"] = info.accuracy;
|
||||||
obj["maxTransformationRatio"] = info.maxTransRatio;
|
obj["volume"] = info.volume;
|
||||||
obj["accuracyClass"] = info.accuracyClass;
|
obj["star"] = info.star;
|
||||||
obj["secondaryLoadCapacity"] = info.secondaryLoadCapacity;
|
obj["ratio"] = info.ratio;
|
||||||
obj["windingConnectionMethod"] = info.windingConnectionMethod;
|
obj["polarity"] = info.polarity;
|
||||||
arr.push_back(obj);
|
arr.push_back(obj);
|
||||||
}
|
}
|
||||||
object["winding"] = arr;
|
object["winding"] = arr;
|
||||||
|
|
@ -124,7 +129,10 @@ void PtExtraInfoDlg::setPropertyValue(QVariant var)
|
||||||
}
|
}
|
||||||
else if(info.name == "一次绕组接线接地方式" || info.tagName == "pwcc")
|
else if(info.name == "一次绕组接线接地方式" || info.tagName == "pwcc")
|
||||||
{
|
{
|
||||||
ui->le_pwwgm->setText(info.defaultValue.toString());
|
int nIndex = 0;
|
||||||
|
if(info.defaultValue.toString() != "null")
|
||||||
|
nIndex = info.defaultValue.toInt();
|
||||||
|
ui->le_pwwgm->setText(QString::number(nIndex));
|
||||||
}
|
}
|
||||||
else if(info.name == "额定频率(Hz)" || info.tagName == "fn_hz")
|
else if(info.name == "额定频率(Hz)" || info.tagName == "fn_hz")
|
||||||
{
|
{
|
||||||
|
|
@ -149,15 +157,15 @@ void PtExtraInfoDlg::setPropertyValue(QVariant var)
|
||||||
for (QJsonValueRef jsonObj : arr)
|
for (QJsonValueRef jsonObj : arr)
|
||||||
{
|
{
|
||||||
QJsonObject node = jsonObj.toObject();
|
QJsonObject node = jsonObj.toObject();
|
||||||
int id = node["id"].toInt();
|
int index = node["index"].toInt();
|
||||||
QString sTr = node["transformationRatio"].toString();
|
QString scope = node["scope"].toString();
|
||||||
QString sMinTr = node["minTransformationRatio"].toString();
|
QString accuracy = node["accuracy"].toString();
|
||||||
QString sMaxTr = node["maxTransformationRatio"].toString();
|
QString volume = node["volume"].toString();
|
||||||
QString sAr = node["accuracyClass"].toString();
|
QString star = node["star"].toString();
|
||||||
QString sSlc = node["secondaryLoadCapacity"].toString();
|
double ratio = node["ratio"].toDouble();
|
||||||
QString sWin = node["windingConnectionMethod"].toString();
|
int polarity = node["polarity"].toInt();
|
||||||
|
|
||||||
addTableRow(sTr,sMinTr,sMaxTr,sAr,sSlc,sWin,id);
|
addTableRow(scope,accuracy,volume,star,ratio,polarity,index);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -165,79 +173,140 @@ void PtExtraInfoDlg::setPropertyValue(QVariant var)
|
||||||
|
|
||||||
void PtExtraInfoDlg::onAddClicked()
|
void PtExtraInfoDlg::onAddClicked()
|
||||||
{
|
{
|
||||||
QString sTr = ui->le_tr_pt->text();
|
QString sRatioRange = ui->le_tr_range_pt->text();
|
||||||
QString sMinTr = ui->le_trMin_pt->text();
|
QString sAccuracy= ui->le_ac_pt->text();
|
||||||
QString sMaxTr = ui->le_trMax_pt->text();
|
QString sVolume = ui->le_slc_pt->text();
|
||||||
QString sAr = ui->le_ac_pt->text();
|
QString sStar = ui->cb_wcm->currentText();
|
||||||
QString sSlc = ui->le_slc_pt->text();
|
double dRatio = ui->le_tr_pt->text().toDouble();
|
||||||
QString sWinding = ui->cb_wcm->currentText();
|
bool bPolarity = ui->cB_polarity->checkState();
|
||||||
addTableRow(sTr,sMinTr,sMaxTr,sAr,sSlc,sWinding);
|
int index = -1;
|
||||||
|
if(ui->rb_spt_pt->isChecked())
|
||||||
|
index = 0;
|
||||||
|
addTableRow(sRatioRange,sAccuracy,sVolume,sStar,dRatio,bPolarity,index);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PtExtraInfoDlg::onDeleteClicked()
|
void PtExtraInfoDlg::onTableCustomContextMenuRequested(const QPoint &pos) {
|
||||||
{
|
QModelIndex index = ui->tb_pt->indexAt(pos);
|
||||||
QPushButton *btn = qobject_cast<QPushButton*>(sender());
|
if (!index.isValid()) {
|
||||||
if (btn) {
|
return;
|
||||||
// 获取按钮在表格中的位置
|
|
||||||
QModelIndex index = ui->tb_pt->indexAt(btn->pos());
|
|
||||||
if (index.isValid()) {
|
|
||||||
QTableWidgetItem* pFirstItem = ui->tb_pt->item(index.row(),0);
|
|
||||||
int id = pFirstItem->data(Qt::UserRole).toInt();
|
|
||||||
_mapPT.remove(QString::number(id));
|
|
||||||
ui->tb_pt->removeRow(index.row());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int row = index.row();
|
||||||
|
|
||||||
|
// 创建右键菜单
|
||||||
|
QMenu menu(this);
|
||||||
|
QAction *deleteAction = menu.addAction("删除此行");
|
||||||
|
|
||||||
|
// 连接删除操作
|
||||||
|
connect(deleteAction, &QAction::triggered, this, [this, row]() {
|
||||||
|
deleteRowWithReindex(row);
|
||||||
|
//updateLables();
|
||||||
|
});
|
||||||
|
|
||||||
|
menu.exec(ui->tb_pt->viewport()->mapToGlobal(pos));
|
||||||
}
|
}
|
||||||
|
|
||||||
void PtExtraInfoDlg::addTableRow(QString sTr,QString sTrMin,QString sTrMax,QString sAr,QString sSlc,QString sWinding,int id)
|
void PtExtraInfoDlg::addTableRow(QString sRatioRange,QString sAccuracy,QString sVolume,QString sStar,double dRatio,bool bPolarity,int index)
|
||||||
{
|
{
|
||||||
if(_mapPT.contains(QString::number(id)))
|
if(_mapPT.contains(QString::number(index)))
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
PtExtraInfo info;
|
PtExtraInfo info;
|
||||||
if(id == -1){ //缺省id时新建,否则加载
|
if(index == -1){ //缺省id时新建,否则加载
|
||||||
info.id = _count;
|
info.index = _count;
|
||||||
_count += 1;
|
_count += 1;
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
info.id = id;
|
info.index = index;
|
||||||
}
|
}
|
||||||
|
|
||||||
int row = ui->tb_pt->rowCount();
|
int row = ui->tb_pt->rowCount();
|
||||||
ui->tb_pt->insertRow(row);
|
ui->tb_pt->insertRow(row);
|
||||||
|
|
||||||
// 变比(输入框)
|
// index
|
||||||
QTableWidgetItem *item = new QTableWidgetItem(sTr);
|
QTableWidgetItem *item = new QTableWidgetItem(QString::number(info.index));
|
||||||
item->setData(Qt::UserRole,info.id);
|
item->setData(Qt::UserRole,info.index);
|
||||||
ui->tb_pt->setItem(row, 0, item);
|
ui->tb_pt->setItem(row, 0, item);
|
||||||
|
|
||||||
//最小变比
|
//变比范围
|
||||||
ui->tb_pt->setItem(row, 1, new QTableWidgetItem(sTrMin));
|
ui->tb_pt->setItem(row, 1, new QTableWidgetItem(sRatioRange));
|
||||||
|
|
||||||
//最大变比
|
//精度等级
|
||||||
ui->tb_pt->setItem(row, 2, new QTableWidgetItem(sTrMax));
|
ui->tb_pt->setItem(row, 2, new QTableWidgetItem(sAccuracy));
|
||||||
|
|
||||||
// 精度等级(下拉框)
|
//二次负载容量
|
||||||
ui->tb_pt->setItem(row, 3, new QTableWidgetItem(sAr));
|
ui->tb_pt->setItem(row, 3, new QTableWidgetItem(sVolume));
|
||||||
|
|
||||||
// 二次负载容量(输入框)
|
// 变比
|
||||||
ui->tb_pt->setItem(row, 4, new QTableWidgetItem(sSlc));
|
ui->tb_pt->setItem(row, 4, new QTableWidgetItem(QString::number(dRatio)));
|
||||||
|
|
||||||
// 绕组接法(下拉框)
|
// 极性
|
||||||
ui->tb_pt->setItem(row, 5, new QTableWidgetItem(sWinding));
|
ui->tb_pt->setItem(row, 5, new QTableWidgetItem(QString::number(bPolarity? 1 : -1)));
|
||||||
|
|
||||||
// 删除按钮
|
//接线
|
||||||
QPushButton *deleteBtn = new QPushButton("删除");
|
ui->tb_pt->setItem(row, 6, new QTableWidgetItem(sStar));
|
||||||
connect(deleteBtn, &QPushButton::clicked, this, &PtExtraInfoDlg::onDeleteClicked);
|
|
||||||
ui->tb_pt->setCellWidget(row, 6, deleteBtn);
|
|
||||||
|
|
||||||
info.transRatio = sTr;
|
info.scope = sRatioRange;
|
||||||
info.minTransRatio = sTrMin;
|
info.accuracy = sAccuracy;
|
||||||
info.maxTransRatio = sTrMax;
|
info.volume = sVolume;
|
||||||
info.accuracyClass = sAr;
|
info.star = sStar;
|
||||||
info.secondaryLoadCapacity = sSlc;
|
info.ratio = dRatio;
|
||||||
info.windingConnectionMethod = sWinding;
|
info.polarity = bPolarity? 1 : -1;
|
||||||
_mapPT.insert(QString::number(info.id),info);
|
_mapPT.insert(QString::number(info.index),info);
|
||||||
|
}
|
||||||
|
|
||||||
|
void PtExtraInfoDlg::deleteRowWithReindex(int row) {
|
||||||
|
// 1. 获取要删除的ID
|
||||||
|
QTableWidgetItem* pFirstItem = ui->tb_pt->item(row, 0);
|
||||||
|
if (!pFirstItem) return;
|
||||||
|
|
||||||
|
int deletedId = pFirstItem->data(Qt::UserRole).toInt();
|
||||||
|
QString deletedKey = QString::number(deletedId);
|
||||||
|
|
||||||
|
// 2. 从表格中删除行
|
||||||
|
ui->tb_pt->removeRow(row);
|
||||||
|
|
||||||
|
// 3. 从_mapCT中删除对应项
|
||||||
|
if (_mapPT.contains(deletedKey)) {
|
||||||
|
_mapPT.remove(deletedKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 4. 重新排序和更新index
|
||||||
|
reorderMapAndUpdateIndices(row);
|
||||||
|
}
|
||||||
|
|
||||||
|
void PtExtraInfoDlg::reorderMapAndUpdateIndices(int startRow) {
|
||||||
|
int totalRows = ui->tb_pt->rowCount();
|
||||||
|
|
||||||
|
// 遍历从startRow开始的所有行
|
||||||
|
for (int row = startRow; row < totalRows; ++row) {
|
||||||
|
QTableWidgetItem* idItem = ui->tb_pt->item(row, 0);
|
||||||
|
if (!idItem) continue;
|
||||||
|
|
||||||
|
int currentId = idItem->data(Qt::UserRole).toInt();
|
||||||
|
QString currentKey = QString::number(currentId);
|
||||||
|
|
||||||
|
// 计算新的ID和索引
|
||||||
|
int newId = row + 1; // 新的ID
|
||||||
|
int newIndex = row + 1; // 新的索引
|
||||||
|
|
||||||
|
if (_mapPT.contains(currentKey)) {
|
||||||
|
// 获取并更新数据
|
||||||
|
PtExtraInfo info = _mapPT[currentKey];
|
||||||
|
info.index = newIndex;
|
||||||
|
|
||||||
|
// 从旧位置移除
|
||||||
|
_mapPT.remove(currentKey);
|
||||||
|
|
||||||
|
// 添加到新位置
|
||||||
|
QString newKey = QString::number(newId);
|
||||||
|
_mapPT[newKey] = info;
|
||||||
|
|
||||||
|
// 更新表格显示
|
||||||
|
idItem->setText(QString::number(newId));
|
||||||
|
idItem->setData(Qt::UserRole, newId);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,80 @@
|
||||||
|
#include "structDataActionParaDlg.h"
|
||||||
|
#include <QHBoxLayout>
|
||||||
|
#include <QLineEdit>
|
||||||
|
#include <QPushButton>
|
||||||
|
|
||||||
|
StructDataActionParaDlg::StructDataActionParaDlg(QWidget *parent)
|
||||||
|
: QDialog(parent) {
|
||||||
|
setWindowTitle("动作参数");
|
||||||
|
resize(350, 300);
|
||||||
|
|
||||||
|
QVBoxLayout *layout = new QVBoxLayout(this);
|
||||||
|
|
||||||
|
// 告警列表
|
||||||
|
m_listWidget = new QListWidget(this);
|
||||||
|
layout->addWidget(m_listWidget);
|
||||||
|
|
||||||
|
// 添加区
|
||||||
|
QHBoxLayout *addLayout = new QHBoxLayout;
|
||||||
|
m_editLine = new QLineEdit(this);
|
||||||
|
m_editLine->setPlaceholderText("输入动作参数");
|
||||||
|
m_btnAdd = new QPushButton("添加", this);
|
||||||
|
|
||||||
|
addLayout->addWidget(m_editLine, 1);
|
||||||
|
addLayout->addWidget(m_btnAdd);
|
||||||
|
layout->addLayout(addLayout);
|
||||||
|
|
||||||
|
// 操作区
|
||||||
|
QHBoxLayout *opLayout = new QHBoxLayout;
|
||||||
|
m_btnDelete = new QPushButton("删除选中", this);
|
||||||
|
m_btnClear = new QPushButton("清空", this);
|
||||||
|
|
||||||
|
opLayout->addWidget(m_btnDelete);
|
||||||
|
opLayout->addWidget(m_btnClear);
|
||||||
|
opLayout->addStretch();
|
||||||
|
layout->addLayout(opLayout);
|
||||||
|
|
||||||
|
// 确定取消
|
||||||
|
QHBoxLayout *btnLayout = new QHBoxLayout;
|
||||||
|
m_btnOk = new QPushButton("确定", this);
|
||||||
|
m_btnCancel = new QPushButton("取消", this);
|
||||||
|
|
||||||
|
btnLayout->addStretch();
|
||||||
|
btnLayout->addWidget(m_btnOk);
|
||||||
|
btnLayout->addWidget(m_btnCancel);
|
||||||
|
layout->addLayout(btnLayout);
|
||||||
|
|
||||||
|
// 连接信号
|
||||||
|
connect(m_btnAdd, &QPushButton::clicked, this, &StructDataActionParaDlg::onAddClicked);
|
||||||
|
connect(m_btnDelete, &QPushButton::clicked, this, &StructDataActionParaDlg::onDeleteClicked);
|
||||||
|
connect(m_btnClear, &QPushButton::clicked, m_listWidget, &QListWidget::clear);
|
||||||
|
connect(m_editLine, &QLineEdit::returnPressed, this, &StructDataActionParaDlg::onAddClicked);
|
||||||
|
connect(m_btnOk, &QPushButton::clicked, this, &QDialog::accept);
|
||||||
|
connect(m_btnCancel, &QPushButton::clicked, this, &QDialog::reject);
|
||||||
|
}
|
||||||
|
|
||||||
|
void StructDataActionParaDlg::setAlarms(const QStringList &alarms) {
|
||||||
|
m_listWidget->clear();
|
||||||
|
m_listWidget->addItems(alarms);
|
||||||
|
}
|
||||||
|
|
||||||
|
QStringList StructDataActionParaDlg::alarms() const {
|
||||||
|
QStringList result;
|
||||||
|
for (int i = 0; i < m_listWidget->count(); ++i) {
|
||||||
|
result << m_listWidget->item(i)->text();
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
void StructDataActionParaDlg::onAddClicked() {
|
||||||
|
QString text = m_editLine->text().trimmed();
|
||||||
|
if (!text.isEmpty()) {
|
||||||
|
m_listWidget->addItem(text);
|
||||||
|
m_editLine->clear();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void StructDataActionParaDlg::onDeleteClicked() {
|
||||||
|
qDeleteAll(m_listWidget->selectedItems());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -0,0 +1,125 @@
|
||||||
|
#include "structDataCauseEditDlg.h"
|
||||||
|
#include <QVBoxLayout>
|
||||||
|
#include <QDialogButtonBox>
|
||||||
|
#include <QLabel>
|
||||||
|
|
||||||
|
StructDataCauseEditDlg::StructDataCauseEditDlg(const QMap<QString, double>& initialData,QWidget* parent)
|
||||||
|
: QDialog(parent) {
|
||||||
|
|
||||||
|
setupUI();
|
||||||
|
setData(initialData);
|
||||||
|
}
|
||||||
|
|
||||||
|
void StructDataCauseEditDlg::setData(const QMap<QString, double>& data) {
|
||||||
|
m_data = data;
|
||||||
|
updateUIFromData();
|
||||||
|
}
|
||||||
|
|
||||||
|
QMap<QString, double> StructDataCauseEditDlg::getData() const {
|
||||||
|
return m_data;
|
||||||
|
}
|
||||||
|
|
||||||
|
void StructDataCauseEditDlg::setupUI() {
|
||||||
|
setWindowTitle("编辑 Cause 数据");
|
||||||
|
setMinimumSize(350, 200);
|
||||||
|
|
||||||
|
QVBoxLayout* mainLayout = new QVBoxLayout(this);
|
||||||
|
|
||||||
|
// 标题
|
||||||
|
QLabel* titleLabel = new QLabel("遥测原因", this);
|
||||||
|
titleLabel->setStyleSheet("font-weight: bold; font-size: 12pt;");
|
||||||
|
mainLayout->addWidget(titleLabel);
|
||||||
|
|
||||||
|
// 分隔线
|
||||||
|
QFrame* line = new QFrame(this);
|
||||||
|
line->setFrameShape(QFrame::HLine);
|
||||||
|
line->setFrameShadow(QFrame::Sunken);
|
||||||
|
mainLayout->addWidget(line);
|
||||||
|
|
||||||
|
// 可用的键列表
|
||||||
|
m_availableKeys = {"upup", "up", "down", "downdown"};
|
||||||
|
|
||||||
|
// 为每个键创建编辑器
|
||||||
|
for (const QString& key : m_availableKeys) {
|
||||||
|
QHBoxLayout* rowLayout = new QHBoxLayout;
|
||||||
|
|
||||||
|
// 复选框
|
||||||
|
QCheckBox* checkBox = new QCheckBox(key, this);
|
||||||
|
checkBox->setStyleSheet("QCheckBox { font-weight: bold; }");
|
||||||
|
|
||||||
|
// 数值输入框
|
||||||
|
QDoubleSpinBox* spinBox = new QDoubleSpinBox(this);
|
||||||
|
spinBox->setRange(0.0, 100.0);
|
||||||
|
//spinBox->setSuffix("%");
|
||||||
|
spinBox->setDecimals(1);
|
||||||
|
spinBox->setSingleStep(0.5);
|
||||||
|
spinBox->setButtonSymbols(QAbstractSpinBox::NoButtons);
|
||||||
|
|
||||||
|
// 连接信号
|
||||||
|
connect(checkBox, &QCheckBox::toggled, this, [this, key, spinBox, checkBox](bool checked) {
|
||||||
|
spinBox->setEnabled(checked);
|
||||||
|
if (checked) {
|
||||||
|
spinBox->setFocus();
|
||||||
|
spinBox->selectAll();
|
||||||
|
} else {
|
||||||
|
spinBox->setValue(0.0);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
rowLayout->addWidget(checkBox);
|
||||||
|
rowLayout->addWidget(spinBox);
|
||||||
|
rowLayout->addStretch();
|
||||||
|
|
||||||
|
mainLayout->addLayout(rowLayout);
|
||||||
|
|
||||||
|
// 存储控件指针
|
||||||
|
m_checkBoxes[key] = checkBox;
|
||||||
|
m_spinBoxes[key] = spinBox;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 分隔线
|
||||||
|
QFrame* line2 = new QFrame(this);
|
||||||
|
line2->setFrameShape(QFrame::HLine);
|
||||||
|
line2->setFrameShadow(QFrame::Sunken);
|
||||||
|
mainLayout->addWidget(line2);
|
||||||
|
|
||||||
|
// 按钮
|
||||||
|
m_buttonBox = new QDialogButtonBox(
|
||||||
|
QDialogButtonBox::Ok | QDialogButtonBox::Cancel, this);
|
||||||
|
|
||||||
|
mainLayout->addWidget(m_buttonBox);
|
||||||
|
|
||||||
|
connect(m_buttonBox, &QDialogButtonBox::accepted, this, [this]() {
|
||||||
|
updateTotal();
|
||||||
|
accept();
|
||||||
|
});
|
||||||
|
connect(m_buttonBox, &QDialogButtonBox::rejected, this, &QDialog::reject);
|
||||||
|
|
||||||
|
setLayout(mainLayout);
|
||||||
|
|
||||||
|
// 初始更新
|
||||||
|
updateTotal();
|
||||||
|
}
|
||||||
|
|
||||||
|
void StructDataCauseEditDlg::updateUIFromData() {
|
||||||
|
for(auto iter = m_data.begin();iter != m_data.end();++iter) {
|
||||||
|
if (m_checkBoxes.contains(iter.key()) && m_spinBoxes.contains(iter.key())) {
|
||||||
|
bool hasValue = m_data.contains(iter.key()) && m_data[iter.key()] > 0;
|
||||||
|
m_checkBoxes[iter.key()]->setChecked(hasValue);
|
||||||
|
m_spinBoxes[iter.key()]->setValue(hasValue ? m_data[iter.key()] : 0.0);
|
||||||
|
m_spinBoxes[iter.key()]->setEnabled(hasValue);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void StructDataCauseEditDlg::updateTotal() {
|
||||||
|
m_data.clear();
|
||||||
|
|
||||||
|
for (const QString& key : m_availableKeys) {
|
||||||
|
if (m_checkBoxes[key]->isChecked()) {
|
||||||
|
double value = m_spinBoxes[key]->value();
|
||||||
|
m_data[key] = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -6,6 +6,8 @@
|
||||||
#include <QKeyEvent>
|
#include <QKeyEvent>
|
||||||
#include "structDataMeasurementDelegate.h"
|
#include "structDataMeasurementDelegate.h"
|
||||||
#include "structDataMeasurementModel.h"
|
#include "structDataMeasurementModel.h"
|
||||||
|
#include "structDataCauseEditDlg.h"
|
||||||
|
#include "structDataActionParaDlg.h"
|
||||||
#include "uiCommunicationBus.h"
|
#include "uiCommunicationBus.h"
|
||||||
|
|
||||||
StructDataMeasurementDelegate::StructDataMeasurementDelegate(QObject* parent) : QStyledItemDelegate(parent) {}
|
StructDataMeasurementDelegate::StructDataMeasurementDelegate(QObject* parent) : QStyledItemDelegate(parent) {}
|
||||||
|
|
@ -20,7 +22,6 @@ QWidget* StructDataMeasurementDelegate::createEditor(QWidget* parent,
|
||||||
switch (column) {
|
switch (column) {
|
||||||
case StructDataMeasurementModel::ColConnectPara:
|
case StructDataMeasurementModel::ColConnectPara:
|
||||||
return createConnectParaEditor(parent);
|
return createConnectParaEditor(parent);
|
||||||
|
|
||||||
case StructDataMeasurementModel::ColType:
|
case StructDataMeasurementModel::ColType:
|
||||||
return createMeasurementTypeEditor(parent);
|
return createMeasurementTypeEditor(parent);
|
||||||
case StructDataMeasurementModel::ColSize:
|
case StructDataMeasurementModel::ColSize:
|
||||||
|
|
@ -39,6 +40,19 @@ QWidget* StructDataMeasurementDelegate::createEditor(QWidget* parent,
|
||||||
return createNumberEditor(parent);
|
return createNumberEditor(parent);
|
||||||
case StructDataMeasurementModel::ColEnable:
|
case StructDataMeasurementModel::ColEnable:
|
||||||
return createEnableEditor(parent);
|
return createEnableEditor(parent);
|
||||||
|
case StructDataMeasurementModel::ColCause:{
|
||||||
|
QString sType = getParaType(index);
|
||||||
|
if(sType == "遥测"){ //遥测
|
||||||
|
return createCauseYCEditor(parent,index);
|
||||||
|
}
|
||||||
|
else if(sType == "遥信") { //遥信
|
||||||
|
return createCauseYXEditor(parent);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
case StructDataMeasurementModel::ColCommand:
|
||||||
|
return createCommandEditor(parent);
|
||||||
|
case StructDataMeasurementModel::ColParameters:
|
||||||
|
return createActionParaEditor(parent);
|
||||||
}
|
}
|
||||||
|
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
|
@ -105,6 +119,32 @@ void StructDataMeasurementDelegate::setEditorData(QWidget* editor, const QModelI
|
||||||
comboBox->setCurrentIndex(index);
|
comboBox->setCurrentIndex(index);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case StructDataMeasurementModel::ColCause:{
|
||||||
|
QString sType = getParaType(index);
|
||||||
|
if(sType == "遥测"){
|
||||||
|
if (StructDataCauseEditDlg* dialog = qobject_cast<StructDataCauseEditDlg*>(editor)) {
|
||||||
|
QMap<QString, double> data = value.value<QMap<QString, double>>();
|
||||||
|
dialog->setData(data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(sType == "遥信"){
|
||||||
|
if (QComboBox* comboBox = qobject_cast<QComboBox*>(editor)) {
|
||||||
|
comboBox->setCurrentText(value.toString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case StructDataMeasurementModel::ColCommand:
|
||||||
|
if (QComboBox* comboBox = qobject_cast<QComboBox*>(editor)) {
|
||||||
|
comboBox->setCurrentText(value.toString());
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case StructDataMeasurementModel::ColParameters:
|
||||||
|
if (StructDataActionParaDlg* dialog = qobject_cast<StructDataActionParaDlg*>(editor)) {
|
||||||
|
QStringList lst = value.toStringList();
|
||||||
|
dialog->setAlarms(lst);
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -158,9 +198,9 @@ void StructDataMeasurementDelegate::setModelData(QWidget* editor, QAbstractItemM
|
||||||
|
|
||||||
case StructDataMeasurementModel::ColSource:
|
case StructDataMeasurementModel::ColSource:
|
||||||
if (QComboBox* comboBox = qobject_cast<QComboBox*>(editor)) {
|
if (QComboBox* comboBox = qobject_cast<QComboBox*>(editor)) {
|
||||||
// 转换文本为数值:cl3611 -> 0, 104 -> 1
|
// 转换文本为数值:cl3611 -> 1, 104 -> 21
|
||||||
QString text = comboBox->currentText();
|
QString text = comboBox->currentText();
|
||||||
newValue = (text == "cl3611") ? 0 : 1;
|
newValue = (text == "cl3611") ? 1 : 2;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
@ -171,6 +211,32 @@ void StructDataMeasurementDelegate::setModelData(QWidget* editor, QAbstractItemM
|
||||||
newValue = (text == "启用") ? true : false;
|
newValue = (text == "启用") ? true : false;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case StructDataMeasurementModel::ColCause:{
|
||||||
|
QString sType = getParaType(index);
|
||||||
|
if(sType == "遥测"){
|
||||||
|
if (StructDataCauseEditDlg* dialog = qobject_cast<StructDataCauseEditDlg*>(editor)) {
|
||||||
|
if (dialog->result() == QDialog::Accepted) {
|
||||||
|
newValue = QVariant::fromValue(dialog->getData());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(sType == "遥信"){
|
||||||
|
if (QComboBox* comboBox = qobject_cast<QComboBox*>(editor)) {
|
||||||
|
newValue = comboBox->currentText();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case StructDataMeasurementModel::ColCommand:
|
||||||
|
if (QComboBox* comboBox = qobject_cast<QComboBox*>(editor)) {
|
||||||
|
newValue = comboBox->currentText();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case StructDataMeasurementModel::ColParameters:
|
||||||
|
if (StructDataActionParaDlg* dialog = qobject_cast<StructDataActionParaDlg*>(editor)) {
|
||||||
|
newValue = dialog->alarms();
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!newValue.isNull()) {
|
if (!newValue.isNull()) {
|
||||||
|
|
@ -307,3 +373,55 @@ QWidget* StructDataMeasurementDelegate::createEnableEditor(QWidget* parent) cons
|
||||||
comboBox->addItems({"启用", "禁用"});
|
comboBox->addItems({"启用", "禁用"});
|
||||||
return comboBox;
|
return comboBox;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QWidget* StructDataMeasurementDelegate::createCauseYCEditor(QWidget* parent, const QModelIndex& index) const {
|
||||||
|
QVariant value = index.data(Qt::EditRole);
|
||||||
|
QMap<QString, double> initialData;
|
||||||
|
|
||||||
|
if (value.canConvert<QMap<QString, double>>()) {
|
||||||
|
initialData = value.value<QMap<QString, double>>();
|
||||||
|
}
|
||||||
|
|
||||||
|
StructDataCauseEditDlg* dialog = new StructDataCauseEditDlg(initialData, parent);
|
||||||
|
dialog->setAttribute(Qt::WA_DeleteOnClose);
|
||||||
|
|
||||||
|
// 对话框关闭时提交数据
|
||||||
|
connect(dialog, &StructDataCauseEditDlg::finished,
|
||||||
|
this, [this, dialog](int result) {
|
||||||
|
StructDataMeasurementDelegate* nonConstThis =
|
||||||
|
const_cast<StructDataMeasurementDelegate*>(this);
|
||||||
|
if (result == QDialog::Accepted) {
|
||||||
|
emit nonConstThis->commitData(dialog);
|
||||||
|
}
|
||||||
|
emit nonConstThis->closeEditor(dialog);
|
||||||
|
});
|
||||||
|
|
||||||
|
return dialog;
|
||||||
|
}
|
||||||
|
|
||||||
|
QWidget* StructDataMeasurementDelegate::createCauseYXEditor(QWidget* parent) const
|
||||||
|
{
|
||||||
|
QComboBox* comboBox = new QComboBox(parent);
|
||||||
|
comboBox->addItems({"raising", "falling"});
|
||||||
|
return comboBox;
|
||||||
|
}
|
||||||
|
|
||||||
|
QWidget* StructDataMeasurementDelegate::createCommandEditor(QWidget* parent) const
|
||||||
|
{
|
||||||
|
QComboBox* comboBox = new QComboBox(parent);
|
||||||
|
comboBox->addItems({"info", "warning", "error", "critical", "exception"});
|
||||||
|
return comboBox;
|
||||||
|
}
|
||||||
|
|
||||||
|
QWidget* StructDataMeasurementDelegate::createActionParaEditor(QWidget* parent) const
|
||||||
|
{
|
||||||
|
StructDataActionParaDlg* dlg = new StructDataActionParaDlg(parent);
|
||||||
|
return dlg;
|
||||||
|
}
|
||||||
|
|
||||||
|
QString StructDataMeasurementDelegate::getParaType(const QModelIndex& index) const
|
||||||
|
{
|
||||||
|
QModelIndex typeIndex = index.sibling(index.row(), StructDataMeasurementModel::ColType);
|
||||||
|
return typeIndex.data(Qt::DisplayRole).toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -55,7 +55,7 @@ QVariant StructDataMeasurementModel::data(const QModelIndex& index, int role) co
|
||||||
case ColCode: return prop->code;
|
case ColCode: return prop->code;
|
||||||
case ColSourceType: return "量测";
|
case ColSourceType: return "量测";
|
||||||
case ColConnectPara: return prop->connect_para;
|
case ColConnectPara: return prop->connect_para;
|
||||||
default: return getMeasurementData(*prop, col);
|
default: return getMeasurementData(*prop, col ,role);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (role == Qt::UserRole) {
|
else if (role == Qt::UserRole) {
|
||||||
|
|
@ -90,7 +90,7 @@ bool StructDataMeasurementModel::setData(const QModelIndex& index, const QVarian
|
||||||
} else {
|
} else {
|
||||||
MeasurementInfo* data = m_dataManager->getMeasurementData(updatedProp);
|
MeasurementInfo* data = m_dataManager->getMeasurementData(updatedProp);
|
||||||
if (data) {
|
if (data) {
|
||||||
changed = updateMeasurementData(data, col, value);
|
changed = updateMeasurementData(data, col, value, role);
|
||||||
if (changed) {
|
if (changed) {
|
||||||
emit m_dataManager->dataChanged();
|
emit m_dataManager->dataChanged();
|
||||||
}
|
}
|
||||||
|
|
@ -98,6 +98,7 @@ bool StructDataMeasurementModel::setData(const QModelIndex& index, const QVarian
|
||||||
}
|
}
|
||||||
|
|
||||||
if (changed) {
|
if (changed) {
|
||||||
|
updatedProp.bDataChanged = true;
|
||||||
if (m_dataManager->updateProperty(updatedProp)) {
|
if (m_dataManager->updateProperty(updatedProp)) {
|
||||||
emit dataChanged(index, index, {role});
|
emit dataChanged(index, index, {role});
|
||||||
emit propertyModified(index.row(), updatedProp);
|
emit propertyModified(index.row(), updatedProp);
|
||||||
|
|
@ -112,7 +113,7 @@ Qt::ItemFlags StructDataMeasurementModel::flags(const QModelIndex& index) const
|
||||||
Qt::ItemFlags flags = QAbstractTableModel::flags(index);
|
Qt::ItemFlags flags = QAbstractTableModel::flags(index);
|
||||||
|
|
||||||
int col = index.column();
|
int col = index.column();
|
||||||
if (col == ColConnectPara || ColType || ColSize || ColSource || ColStation || ColEquipment || ColChannel || ColPacket || ColOffset || ColEnable) {
|
if (col == ColConnectPara || ColType || ColSize || ColSource || ColStation || ColEquipment || ColChannel || ColPacket || ColOffset || ColEnable || ColCause) {
|
||||||
flags |= Qt::ItemIsEditable;
|
flags |= Qt::ItemIsEditable;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -123,7 +124,7 @@ QVariant StructDataMeasurementModel::headerData(int section, Qt::Orientation ori
|
||||||
if (orientation == Qt::Horizontal && role == Qt::DisplayRole) {
|
if (orientation == Qt::Horizontal && role == Qt::DisplayRole) {
|
||||||
QStringList headers = {
|
QStringList headers = {
|
||||||
"名称", "标签", "编码", "类型", "连接参数",
|
"名称", "标签", "编码", "类型", "连接参数",
|
||||||
"量测类型", "数据包size", "数据来源", "子站", "设备", "通道号","包号(104)","偏移量(104)","开启事件"
|
"量测类型", "数据包size", "数据来源", "子站", "设备", "通道号","包号(104)","偏移量(104)","开启事件","事件原因","执行动作","动作参数"
|
||||||
};
|
};
|
||||||
return headers.value(section, "");
|
return headers.value(section, "");
|
||||||
}
|
}
|
||||||
|
|
@ -173,7 +174,7 @@ ExtraProperty* StructDataMeasurementModel::getProperty(int displayRow) const {
|
||||||
return m_dataManager->getPropertyByCode(m_propertyCodes[displayRow]);
|
return m_dataManager->getPropertyByCode(m_propertyCodes[displayRow]);
|
||||||
}
|
}
|
||||||
|
|
||||||
QVariant StructDataMeasurementModel::getMeasurementData(const ExtraProperty& prop, int col) const {
|
QVariant StructDataMeasurementModel::getMeasurementData(const ExtraProperty& prop, int col, int role) const {
|
||||||
MeasurementInfo* data = m_dataManager->getMeasurementData(prop);
|
MeasurementInfo* data = m_dataManager->getMeasurementData(prop);
|
||||||
if (!data) return QVariant();
|
if (!data) return QVariant();
|
||||||
|
|
||||||
|
|
@ -187,11 +188,43 @@ QVariant StructDataMeasurementModel::getMeasurementData(const ExtraProperty& pro
|
||||||
case ColPacket: return data->nPacket;
|
case ColPacket: return data->nPacket;
|
||||||
case ColOffset: return data->nOffset;
|
case ColOffset: return data->nOffset;
|
||||||
case ColEnable: return data->bEnable ? "启用" : "禁用";
|
case ColEnable: return data->bEnable ? "启用" : "禁用";
|
||||||
|
case ColCause:
|
||||||
|
if(data->type == 0){
|
||||||
|
if(role == Qt::EditRole){
|
||||||
|
return QVariant::fromValue(data->mapTE);
|
||||||
|
}
|
||||||
|
else if(role == Qt::DisplayRole){
|
||||||
|
if (data->mapTE.isEmpty()) {
|
||||||
|
return "(空)";
|
||||||
|
}
|
||||||
|
|
||||||
|
QStringList parts;
|
||||||
|
for (auto it = data->mapTE.begin(); it != data->mapTE.end(); ++it) {
|
||||||
|
parts << QString("%1: %2").arg(it.key()).arg(it.value(), 0, 'f', 1);
|
||||||
|
}
|
||||||
|
return parts.join("; ");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return data->sEdge;
|
||||||
|
case ColCommand: return data->sCommand;
|
||||||
|
case ColParameters:{
|
||||||
|
if(role == Qt::EditRole){
|
||||||
|
return data->lstParameter;
|
||||||
|
}
|
||||||
|
else if(role == Qt::DisplayRole){
|
||||||
|
if (data->lstParameter.isEmpty()) {
|
||||||
|
return "(空)";
|
||||||
|
}
|
||||||
|
return data->lstParameter.join(",");
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return QVariant();
|
return QVariant();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool StructDataMeasurementModel::updateMeasurementData(MeasurementInfo* data, int col, const QVariant& value) {
|
bool StructDataMeasurementModel::updateMeasurementData(MeasurementInfo* data, int col, const QVariant& value,int role) {
|
||||||
switch (col) {
|
switch (col) {
|
||||||
case ColType:
|
case ColType:
|
||||||
if (data->type != value.toInt()) {
|
if (data->type != value.toInt()) {
|
||||||
|
|
@ -235,6 +268,37 @@ bool StructDataMeasurementModel::updateMeasurementData(MeasurementInfo* data, in
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case ColCause:
|
||||||
|
if(data->type == 0)
|
||||||
|
{
|
||||||
|
if(role == Qt::EditRole){
|
||||||
|
if (data->mapTE != value.value<QMap<QString,double>>()) {
|
||||||
|
data->mapTE = value.value<QMap<QString,double>>();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
if (data->sEdge != value.toString()) {
|
||||||
|
data->sEdge = value.toString();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case ColCommand:
|
||||||
|
if (data->sCommand != value.toString()) {
|
||||||
|
data->sCommand = value.toString();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case ColParameters:
|
||||||
|
if(role == Qt::EditRole){
|
||||||
|
if (data->lstParameter != value.toStringList()) {
|
||||||
|
data->lstParameter = value.toStringList();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
@ -258,12 +322,12 @@ QString StructDataMeasurementModel::getSourceText(int source) const {
|
||||||
|
|
||||||
int StructDataMeasurementModel::getSourceInt(QString sType) const {
|
int StructDataMeasurementModel::getSourceInt(QString sType) const {
|
||||||
if(sType == "cl3611"){
|
if(sType == "cl3611"){
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
else if(sType == "104"){
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
else {
|
else if(sType == "104"){
|
||||||
return 2;
|
return 2;
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
return 3;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,7 @@ StructDataPreviewDlg::StructDataPreviewDlg(QWidget *parent)
|
||||||
this->setWindowFlags(Qt::FramelessWindowHint | windowFlags());
|
this->setWindowFlags(Qt::FramelessWindowHint | windowFlags());
|
||||||
m_statusBar = new QStatusBar(this);
|
m_statusBar = new QStatusBar(this);
|
||||||
ui->mainLayout->addWidget(m_statusBar);
|
ui->mainLayout->addWidget(m_statusBar);
|
||||||
m_statusBar->setMaximumHeight(21);
|
m_statusBar->setMaximumHeight(24);
|
||||||
initial();
|
initial();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -47,6 +47,7 @@ void StructDataPreviewDlg::loadData()
|
||||||
m_dataSource->loadExtrapro(_pExtraProManager->geAlltProperty());
|
m_dataSource->loadExtrapro(_pExtraProManager->geAlltProperty());
|
||||||
m_dataSource->loadMeasurementData(DataBase::GetInstance()->getAllMeasurements());
|
m_dataSource->loadMeasurementData(DataBase::GetInstance()->getAllMeasurements());
|
||||||
m_dataSource->loadPropertyData(DataManager::instance().modelData());
|
m_dataSource->loadPropertyData(DataManager::instance().modelData());
|
||||||
|
addLog(QString("载入属性:%1").arg(m_dataSource->getAllProperties().size()));
|
||||||
}
|
}
|
||||||
|
|
||||||
void StructDataPreviewDlg::initial()
|
void StructDataPreviewDlg::initial()
|
||||||
|
|
@ -592,7 +593,6 @@ void StructDataPreviewDlg::saveCurrentIfModified()
|
||||||
void StructDataPreviewDlg::saveAll() {
|
void StructDataPreviewDlg::saveAll() {
|
||||||
m_dataSource->saveAll();
|
m_dataSource->saveAll();
|
||||||
m_currentModified = false;
|
m_currentModified = false;
|
||||||
//updateWindowTitle();
|
|
||||||
m_statusBar->showMessage("保存成功", 2000);
|
m_statusBar->showMessage("保存成功", 2000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -630,6 +630,7 @@ void StructDataPreviewDlg::setupMeasurementColumns() {
|
||||||
ui->tableView->setColumnWidth(StructDataMeasurementModel::ColPacket, 50);
|
ui->tableView->setColumnWidth(StructDataMeasurementModel::ColPacket, 50);
|
||||||
ui->tableView->setColumnWidth(StructDataMeasurementModel::ColOffset, 60);
|
ui->tableView->setColumnWidth(StructDataMeasurementModel::ColOffset, 60);
|
||||||
ui->tableView->setColumnWidth(StructDataMeasurementModel::ColEnable, 50);
|
ui->tableView->setColumnWidth(StructDataMeasurementModel::ColEnable, 50);
|
||||||
|
ui->tableView->setColumnWidth(StructDataMeasurementModel::ColCause, 120);
|
||||||
}
|
}
|
||||||
|
|
||||||
void StructDataPreviewDlg::updateTableTitle(const QString& dataType, const QString& categoryName,
|
void StructDataPreviewDlg::updateTableTitle(const QString& dataType, const QString& categoryName,
|
||||||
|
|
@ -890,6 +891,12 @@ void StructDataPreviewDlg::updateRecommandLst(QStringList lst)
|
||||||
_recommandCompleter->complete(); // 重新显示补全列表
|
_recommandCompleter->complete(); // 重新显示补全列表
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void StructDataPreviewDlg::addLog(const QString &message)
|
||||||
|
{
|
||||||
|
QString time = QDateTime::currentDateTime().toString("hh:mm:ss");
|
||||||
|
ui->listWidget->addItem(QString("[%1] %2").arg(time).arg(message));
|
||||||
|
ui->listWidget->scrollToBottom();
|
||||||
|
}
|
||||||
|
|
||||||
void StructDataPreviewDlg::resizeEvent(QResizeEvent *event)
|
void StructDataPreviewDlg::resizeEvent(QResizeEvent *event)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -106,6 +106,7 @@ bool StructDataPropertyModel::setData(const QModelIndex& index, const QVariant&
|
||||||
|
|
||||||
if (changed) {
|
if (changed) {
|
||||||
// 更新到DataManager
|
// 更新到DataManager
|
||||||
|
updatedProp.bDataChanged = true; //修改后设为真
|
||||||
if (m_dataManager->updateProperty(updatedProp)) {
|
if (m_dataManager->updateProperty(updatedProp)) {
|
||||||
emit dataChanged(index, index, {role});
|
emit dataChanged(index, index, {role});
|
||||||
emit propertyModified(index.row(), updatedProp);
|
emit propertyModified(index.row(), updatedProp);
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
#include "structDataSource.h"
|
#include "structDataSource.h"
|
||||||
|
#include "dataBase.h"
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
|
|
||||||
StructDataSource::StructDataSource(QObject* parent) : QObject(parent) {
|
StructDataSource::StructDataSource(QObject* parent) : QObject(parent) {
|
||||||
|
|
@ -121,7 +122,63 @@ int StructDataSource::removeProperties(const QVector<QString>& codes) {
|
||||||
|
|
||||||
// 保存到文件
|
// 保存到文件
|
||||||
void StructDataSource::saveAll() {
|
void StructDataSource::saveAll() {
|
||||||
|
for(auto& pro:allProperties){
|
||||||
|
if(pro.bDataChanged){ //已修改,需要保存
|
||||||
|
if(pro.sourceType == "measurement"){ //量测
|
||||||
|
auto pMeasure = getMeasurementData(pro);
|
||||||
|
if(pMeasure){
|
||||||
|
QJsonObject objDataSource;
|
||||||
|
QJsonObject objIoAddress;
|
||||||
|
if(pMeasure->nSource == 1){ //3611
|
||||||
|
objDataSource["type"] = 1;
|
||||||
|
objIoAddress["station"] = pMeasure->sStation;
|
||||||
|
objIoAddress["device"] = pMeasure->sDevice;
|
||||||
|
objIoAddress["channel"] = pMeasure->sChannel;
|
||||||
|
}
|
||||||
|
else if(pMeasure->nSource == 2){ //104
|
||||||
|
objDataSource["type"] = 2;
|
||||||
|
objIoAddress["station"] = pMeasure->sStation;
|
||||||
|
objIoAddress["packet"] = pMeasure->nPacket;
|
||||||
|
objIoAddress["offset"] = pMeasure->nOffset;
|
||||||
|
}
|
||||||
|
objDataSource["io_address"] = objIoAddress;
|
||||||
|
|
||||||
|
QJsonObject objEventPlan;
|
||||||
|
QJsonObject objCause;
|
||||||
|
QJsonObject objAction;
|
||||||
|
QJsonArray arrPara;
|
||||||
|
objEventPlan["enable"] = pMeasure->bEnable;
|
||||||
|
if(pMeasure->type == 0){ //遥测
|
||||||
|
for(auto iter = pMeasure->mapTE.begin();iter != pMeasure->mapTE.end();++iter){
|
||||||
|
objCause[iter.key()] = iter.value();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(pMeasure->type == 1){ //遥信
|
||||||
|
objCause["edge"] = pMeasure->sEdge;
|
||||||
|
}
|
||||||
|
objEventPlan["cause"] = objCause;
|
||||||
|
|
||||||
|
objAction["command"] = pMeasure->sCommand;
|
||||||
|
for(auto ¶:pMeasure->lstParameter){
|
||||||
|
arrPara.append(para);
|
||||||
|
}
|
||||||
|
objAction["parameters"] = arrPara;
|
||||||
|
objEventPlan["action"] = objAction;
|
||||||
|
|
||||||
|
QJsonObject objBinding;
|
||||||
|
if(!pMeasure->sWindType.isEmpty()){
|
||||||
|
QJsonObject objWind;
|
||||||
|
objWind["ratio"] = pMeasure->nRatio;
|
||||||
|
objWind["polarity"] = pMeasure->nPolarity;
|
||||||
|
objWind["index"] = pMeasure->nIndex;
|
||||||
|
objBinding[pMeasure->sWindType] = objWind;
|
||||||
|
}
|
||||||
|
|
||||||
|
DataBase::GetInstance()->updateMeasurement(pMeasure->name,pMeasure->type,objDataSource,objEventPlan,objBinding,pMeasure->size,pMeasure->componentUuid);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 加载数据
|
// 加载数据
|
||||||
|
|
|
||||||
|
|
@ -19,25 +19,10 @@
|
||||||
<string>Form</string>
|
<string>Form</string>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QGridLayout" name="gridLayout">
|
<layout class="QGridLayout" name="gridLayout">
|
||||||
<property name="leftMargin">
|
|
||||||
<number>10</number>
|
|
||||||
</property>
|
|
||||||
<property name="topMargin">
|
|
||||||
<number>10</number>
|
|
||||||
</property>
|
|
||||||
<property name="rightMargin">
|
|
||||||
<number>10</number>
|
|
||||||
</property>
|
|
||||||
<property name="bottomMargin">
|
|
||||||
<number>10</number>
|
|
||||||
</property>
|
|
||||||
<property name="horizontalSpacing">
|
|
||||||
<number>6</number>
|
|
||||||
</property>
|
|
||||||
<property name="verticalSpacing">
|
<property name="verticalSpacing">
|
||||||
<number>10</number>
|
<number>8</number>
|
||||||
</property>
|
</property>
|
||||||
<item row="0" column="0" colspan="20">
|
<item row="0" column="0" colspan="17">
|
||||||
<widget class="QLabel" name="label_title_ct">
|
<widget class="QLabel" name="label_title_ct">
|
||||||
<property name="minimumSize">
|
<property name="minimumSize">
|
||||||
<size>
|
<size>
|
||||||
|
|
@ -57,9 +42,12 @@
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string/>
|
<string/>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignmentFlag::AlignCenter</set>
|
||||||
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="0" colspan="2">
|
<item row="1" column="0">
|
||||||
<widget class="QLabel" name="label_17">
|
<widget class="QLabel" name="label_17">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>额定电流</string>
|
<string>额定电流</string>
|
||||||
|
|
@ -69,14 +57,21 @@
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="2" colspan="3">
|
<item row="1" column="1" colspan="3">
|
||||||
<widget class="QLineEdit" name="le_ratedCurrent">
|
<widget class="QLineEdit" name="le_ratedCurrent">
|
||||||
<property name="readOnly">
|
<property name="readOnly">
|
||||||
<bool>false</bool>
|
<bool>false</bool>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="8" colspan="3">
|
<item row="1" column="4">
|
||||||
|
<widget class="QLabel" name="label_18">
|
||||||
|
<property name="text">
|
||||||
|
<string>A</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="6" colspan="2">
|
||||||
<widget class="QLabel" name="label_22">
|
<widget class="QLabel" name="label_22">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>动稳定电流</string>
|
<string>动稳定电流</string>
|
||||||
|
|
@ -86,21 +81,21 @@
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="11" colspan="4">
|
<item row="1" column="8" colspan="4">
|
||||||
<widget class="QLineEdit" name="le_dsc_ct">
|
<widget class="QLineEdit" name="le_dsc_ct">
|
||||||
<property name="readOnly">
|
<property name="readOnly">
|
||||||
<bool>false</bool>
|
<bool>false</bool>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="15">
|
<item row="1" column="12">
|
||||||
<widget class="QLabel" name="label_21">
|
<widget class="QLabel" name="label_21">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>A</string>
|
<string>A</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="17">
|
<item row="1" column="14">
|
||||||
<widget class="QLabel" name="label_27">
|
<widget class="QLabel" name="label_27">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>短时热电流</string>
|
<string>短时热电流</string>
|
||||||
|
|
@ -110,21 +105,21 @@
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="18">
|
<item row="1" column="15">
|
||||||
<widget class="QLineEdit" name="le_sttc">
|
<widget class="QLineEdit" name="le_sttc">
|
||||||
<property name="readOnly">
|
<property name="readOnly">
|
||||||
<bool>false</bool>
|
<bool>false</bool>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="19">
|
<item row="1" column="16">
|
||||||
<widget class="QLabel" name="label_26">
|
<widget class="QLabel" name="label_26">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>As</string>
|
<string>As</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="0" colspan="2">
|
<item row="2" column="0">
|
||||||
<widget class="QLabel" name="label_20">
|
<widget class="QLabel" name="label_20">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>工频耐压</string>
|
<string>工频耐压</string>
|
||||||
|
|
@ -134,21 +129,21 @@
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="2" colspan="2">
|
<item row="2" column="1" colspan="2">
|
||||||
<widget class="QLineEdit" name="le_pfwv_ct">
|
<widget class="QLineEdit" name="le_pfwv_ct">
|
||||||
<property name="readOnly">
|
<property name="readOnly">
|
||||||
<bool>false</bool>
|
<bool>false</bool>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="4" colspan="2">
|
<item row="2" column="3" colspan="2">
|
||||||
<widget class="QLabel" name="label_19">
|
<widget class="QLabel" name="label_19">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>V/1min</string>
|
<string>V/1min</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="7" colspan="2">
|
<item row="2" column="5">
|
||||||
<widget class="QLabel" name="label_24">
|
<widget class="QLabel" name="label_24">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>冲击耐压</string>
|
<string>冲击耐压</string>
|
||||||
|
|
@ -158,21 +153,21 @@
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="9" colspan="3">
|
<item row="2" column="7" colspan="2">
|
||||||
<widget class="QLineEdit" name="le_iwv_ct">
|
<widget class="QLineEdit" name="le_iwv_ct">
|
||||||
<property name="readOnly">
|
<property name="readOnly">
|
||||||
<bool>false</bool>
|
<bool>false</bool>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="12" colspan="2">
|
<item row="2" column="9">
|
||||||
<widget class="QLabel" name="label_23">
|
<widget class="QLabel" name="label_23">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>V</string>
|
<string>V</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="14" colspan="2">
|
<item row="2" column="10" colspan="3">
|
||||||
<widget class="QLabel" name="label_25">
|
<widget class="QLabel" name="label_25">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>仪表保安系数</string>
|
<string>仪表保安系数</string>
|
||||||
|
|
@ -182,14 +177,14 @@
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="16">
|
<item row="2" column="13">
|
||||||
<widget class="QLineEdit" name="le_isf">
|
<widget class="QLineEdit" name="le_isf">
|
||||||
<property name="readOnly">
|
<property name="readOnly">
|
||||||
<bool>false</bool>
|
<bool>false</bool>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="17">
|
<item row="2" column="14">
|
||||||
<widget class="QLabel" name="label_28">
|
<widget class="QLabel" name="label_28">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>额定频率</string>
|
<string>额定频率</string>
|
||||||
|
|
@ -199,14 +194,14 @@
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="18">
|
<item row="2" column="15">
|
||||||
<widget class="QLineEdit" name="le_rf_ct">
|
<widget class="QLineEdit" name="le_rf_ct">
|
||||||
<property name="readOnly">
|
<property name="readOnly">
|
||||||
<bool>false</bool>
|
<bool>false</bool>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="19">
|
<item row="2" column="16">
|
||||||
<widget class="QLabel" name="label_29">
|
<widget class="QLabel" name="label_29">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Hz</string>
|
<string>Hz</string>
|
||||||
|
|
@ -220,70 +215,46 @@
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="3" column="1" colspan="2">
|
<item row="3" column="1">
|
||||||
<widget class="QRadioButton" name="rb_tpt_ct">
|
<widget class="QRadioButton" name="rb_tpt_ct">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>三相互感器</string>
|
<string>三相互感器</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="3" column="3" colspan="4">
|
<item row="3" column="2" colspan="3">
|
||||||
<widget class="QRadioButton" name="rb_zst_ct">
|
<widget class="QRadioButton" name="rb_zst_ct">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>零序互感器</string>
|
<string>零序互感器</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="4" column="0" colspan="3">
|
<item row="4" column="0" colspan="2">
|
||||||
<widget class="QLabel" name="label_31">
|
<widget class="QLabel" name="label_31">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>本元件内含CT的配置:</string>
|
<string>本元件内含CT的配置:</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="alignment">
|
<property name="alignment">
|
||||||
<set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set>
|
<set>Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignVCenter</set>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="5" column="0">
|
<item row="5" column="0">
|
||||||
<widget class="QLabel" name="label_32">
|
<widget class="QLabel" name="label_32">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>变比</string>
|
<string>变比范围</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="5" column="1" colspan="2">
|
<item row="5" column="1">
|
||||||
<widget class="QLineEdit" name="le_tr_ct">
|
<widget class="QLineEdit" name="le_tr_range_ct">
|
||||||
<property name="readOnly">
|
<property name="readOnly">
|
||||||
<bool>false</bool>
|
<bool>false</bool>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="5" column="5" colspan="2">
|
<item row="5" column="2" colspan="2">
|
||||||
<widget class="QLineEdit" name="le_trMin_ct">
|
<widget class="QLabel" name="label_35">
|
||||||
<property name="readOnly">
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="5" column="7">
|
|
||||||
<widget class="QLabel" name="label_36">
|
|
||||||
<property name="text">
|
|
||||||
<string>最大变比</string>
|
|
||||||
</property>
|
|
||||||
<property name="alignment">
|
|
||||||
<set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="5" column="8" colspan="2">
|
|
||||||
<widget class="QLineEdit" name="le_trMax_ct">
|
|
||||||
<property name="readOnly">
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="5" column="10" colspan="3">
|
|
||||||
<widget class="QLabel" name="label_34">
|
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>精度等级</string>
|
<string>精度等级</string>
|
||||||
</property>
|
</property>
|
||||||
|
|
@ -292,28 +263,55 @@
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="5" column="13" colspan="3">
|
<item row="5" column="4">
|
||||||
<widget class="QLineEdit" name="le_ac_ct">
|
<widget class="QLineEdit" name="le_ac_ct">
|
||||||
<property name="readOnly">
|
<property name="readOnly">
|
||||||
<bool>false</bool>
|
<bool>false</bool>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="5" column="16">
|
<item row="5" column="5" colspan="2">
|
||||||
<widget class="QLabel" name="label_33">
|
<widget class="QLabel" name="label_33">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>二次负载容量</string>
|
<string>二次负载容量</string>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="5" column="17" colspan="2">
|
<item row="5" column="7" colspan="4">
|
||||||
<widget class="QLineEdit" name="le_slc_ct">
|
<widget class="QLineEdit" name="le_slc_ct">
|
||||||
<property name="readOnly">
|
<property name="readOnly">
|
||||||
<bool>false</bool>
|
<bool>false</bool>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="5" column="19">
|
<item row="5" column="11" colspan="2">
|
||||||
|
<widget class="QLabel" name="label_34">
|
||||||
|
<property name="text">
|
||||||
|
<string>变比</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="5" column="13">
|
||||||
|
<widget class="QLineEdit" name="le_tr_ct">
|
||||||
|
<property name="readOnly">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="5" column="14" colspan="2">
|
||||||
|
<widget class="QCheckBox" name="cb_polarity">
|
||||||
|
<property name="text">
|
||||||
|
<string>正常极性</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="5" column="16">
|
||||||
<widget class="QPushButton" name="btn_add_ct">
|
<widget class="QPushButton" name="btn_add_ct">
|
||||||
<property name="minimumSize">
|
<property name="minimumSize">
|
||||||
<size>
|
<size>
|
||||||
|
|
@ -356,10 +354,10 @@ QPushButton:disabled {
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="6" column="0" colspan="20">
|
<item row="6" column="0" colspan="17">
|
||||||
<widget class="QTableWidget" name="tb_ct">
|
<widget class="QTableWidget" name="tb_ct">
|
||||||
<attribute name="horizontalHeaderVisible">
|
<attribute name="horizontalHeaderVisible">
|
||||||
<bool>false</bool>
|
<bool>true</bool>
|
||||||
</attribute>
|
</attribute>
|
||||||
<attribute name="horizontalHeaderDefaultSectionSize">
|
<attribute name="horizontalHeaderDefaultSectionSize">
|
||||||
<number>100</number>
|
<number>100</number>
|
||||||
|
|
@ -367,19 +365,17 @@ QPushButton:disabled {
|
||||||
<attribute name="horizontalHeaderStretchLastSection">
|
<attribute name="horizontalHeaderStretchLastSection">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
</attribute>
|
</attribute>
|
||||||
|
<attribute name="verticalHeaderVisible">
|
||||||
|
<bool>false</bool>
|
||||||
|
</attribute>
|
||||||
<column>
|
<column>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>变比</string>
|
<string>序号</string>
|
||||||
</property>
|
</property>
|
||||||
</column>
|
</column>
|
||||||
<column>
|
<column>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>最小变比</string>
|
<string>变比范围</string>
|
||||||
</property>
|
|
||||||
</column>
|
|
||||||
<column>
|
|
||||||
<property name="text">
|
|
||||||
<string>最大变比</string>
|
|
||||||
</property>
|
</property>
|
||||||
</column>
|
</column>
|
||||||
<column>
|
<column>
|
||||||
|
|
@ -394,26 +390,14 @@ QPushButton:disabled {
|
||||||
</column>
|
</column>
|
||||||
<column>
|
<column>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>删除</string>
|
<string>变比</string>
|
||||||
|
</property>
|
||||||
|
</column>
|
||||||
|
<column>
|
||||||
|
<property name="text">
|
||||||
|
<string>极性</string>
|
||||||
</property>
|
</property>
|
||||||
</column>
|
</column>
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="5">
|
|
||||||
<widget class="QLabel" name="label_18">
|
|
||||||
<property name="text">
|
|
||||||
<string>A</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="5" column="3" colspan="2">
|
|
||||||
<widget class="QLabel" name="label_35">
|
|
||||||
<property name="text">
|
|
||||||
<string>最小变比</string>
|
|
||||||
</property>
|
|
||||||
<property name="alignment">
|
|
||||||
<set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set>
|
|
||||||
</property>
|
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
|
|
|
||||||
|
|
@ -206,6 +206,118 @@ QTabBar::tab:selected {
|
||||||
<property name="verticalSpacing">
|
<property name="verticalSpacing">
|
||||||
<number>10</number>
|
<number>10</number>
|
||||||
</property>
|
</property>
|
||||||
|
<item row="4" column="1">
|
||||||
|
<widget class="QComboBox" name="cb_windIndex">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>150</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="6" column="1">
|
||||||
|
<widget class="QLineEdit" name="le_dbName"/>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="1">
|
||||||
|
<widget class="QComboBox" name="cb_name">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>150</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="5" column="1">
|
||||||
|
<widget class="QLineEdit" name="le_dbTag"/>
|
||||||
|
</item>
|
||||||
|
<item row="5" column="0">
|
||||||
|
<widget class="QLabel" name="label_dbTag">
|
||||||
|
<property name="text">
|
||||||
|
<string>对称标签</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="1">
|
||||||
|
<widget class="QLineEdit" name="le_size">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>0</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>80</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="2">
|
||||||
|
<widget class="QLabel" name="label_10">
|
||||||
|
<property name="text">
|
||||||
|
<string>(唯一标识)</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="1">
|
||||||
|
<widget class="QComboBox" name="cb_tag">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>150</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="0">
|
||||||
|
<widget class="QLabel" name="label_3">
|
||||||
|
<property name="text">
|
||||||
|
<string>数据大小(size):</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QLabel" name="label_8">
|
||||||
|
<property name="text">
|
||||||
|
<string>标签(tag):</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="0">
|
||||||
|
<widget class="QLabel" name="label_2">
|
||||||
|
<property name="text">
|
||||||
|
<string>类型:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="7" column="1">
|
||||||
|
<spacer name="verticalSpacer">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Orientation::Vertical</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>20</width>
|
||||||
|
<height>40</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
<item row="1" column="0">
|
<item row="1" column="0">
|
||||||
<widget class="QLabel" name="label_9">
|
<widget class="QLabel" name="label_9">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
|
|
@ -241,92 +353,17 @@ QTabBar::tab:selected {
|
||||||
</item>
|
</item>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="0">
|
<item row="4" column="0">
|
||||||
<widget class="QLabel" name="label_2">
|
<widget class="QLabel" name="label_wind">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>类型:</string>
|
<string>绕组序号</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="4" column="1">
|
<item row="6" column="0">
|
||||||
<spacer name="verticalSpacer">
|
<widget class="QLabel" name="label_dbName">
|
||||||
<property name="orientation">
|
|
||||||
<enum>Qt::Orientation::Vertical</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" stdset="0">
|
|
||||||
<size>
|
|
||||||
<width>20</width>
|
|
||||||
<height>40</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="1">
|
|
||||||
<widget class="QComboBox" name="cb_tag">
|
|
||||||
<property name="minimumSize">
|
|
||||||
<size>
|
|
||||||
<width>150</width>
|
|
||||||
<height>0</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="0">
|
|
||||||
<widget class="QLabel" name="label_8">
|
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>标签(tag):</string>
|
<string>对称名称</string>
|
||||||
</property>
|
|
||||||
<property name="alignment">
|
|
||||||
<set>Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignVCenter</set>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="1">
|
|
||||||
<widget class="QComboBox" name="cb_name">
|
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="minimumSize">
|
|
||||||
<size>
|
|
||||||
<width>150</width>
|
|
||||||
<height>0</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="3" column="1">
|
|
||||||
<widget class="QLineEdit" name="le_size">
|
|
||||||
<property name="minimumSize">
|
|
||||||
<size>
|
|
||||||
<width>0</width>
|
|
||||||
<height>0</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="maximumSize">
|
|
||||||
<size>
|
|
||||||
<width>80</width>
|
|
||||||
<height>16777215</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="3" column="0">
|
|
||||||
<widget class="QLabel" name="label_3">
|
|
||||||
<property name="text">
|
|
||||||
<string>数据大小(size):</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="2">
|
|
||||||
<widget class="QLabel" name="label_10">
|
|
||||||
<property name="text">
|
|
||||||
<string>(唯一标识)</string>
|
|
||||||
</property>
|
|
||||||
<property name="alignment">
|
|
||||||
<set>Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignVCenter</set>
|
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
|
@ -334,7 +371,7 @@ QTabBar::tab:selected {
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QWidget" name="tab_2">
|
<widget class="QWidget" name="tab_2">
|
||||||
<attribute name="title">
|
<attribute name="title">
|
||||||
<string>通信配置</string>
|
<string>数据配置</string>
|
||||||
</attribute>
|
</attribute>
|
||||||
<layout class="QGridLayout" name="gridLayout_4">
|
<layout class="QGridLayout" name="gridLayout_4">
|
||||||
<item row="0" column="0">
|
<item row="0" column="0">
|
||||||
|
|
|
||||||
|
|
@ -19,95 +19,17 @@
|
||||||
<string>Form</string>
|
<string>Form</string>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QGridLayout" name="gridLayout">
|
<layout class="QGridLayout" name="gridLayout">
|
||||||
<property name="leftMargin">
|
|
||||||
<number>10</number>
|
|
||||||
</property>
|
|
||||||
<property name="topMargin">
|
|
||||||
<number>10</number>
|
|
||||||
</property>
|
|
||||||
<property name="rightMargin">
|
|
||||||
<number>10</number>
|
|
||||||
</property>
|
|
||||||
<property name="bottomMargin">
|
|
||||||
<number>10</number>
|
|
||||||
</property>
|
|
||||||
<property name="horizontalSpacing">
|
|
||||||
<number>6</number>
|
|
||||||
</property>
|
|
||||||
<property name="verticalSpacing">
|
<property name="verticalSpacing">
|
||||||
<number>10</number>
|
<number>8</number>
|
||||||
</property>
|
</property>
|
||||||
<item row="0" column="0" colspan="22">
|
<item row="5" column="10" colspan="2">
|
||||||
<widget class="QLabel" name="label_title_pt">
|
<widget class="QCheckBox" name="cB_polarity">
|
||||||
<property name="minimumSize">
|
|
||||||
<size>
|
|
||||||
<width>0</width>
|
|
||||||
<height>30</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="maximumSize">
|
|
||||||
<size>
|
|
||||||
<width>16777215</width>
|
|
||||||
<height>30</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="styleSheet">
|
|
||||||
<string notr="true">border:4px double dark;</string>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string/>
|
<string>正常极性</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="0" colspan="2">
|
<item row="1" column="11" colspan="2">
|
||||||
<widget class="QLabel" name="label">
|
|
||||||
<property name="text">
|
|
||||||
<string>额定电压</string>
|
|
||||||
</property>
|
|
||||||
<property name="alignment">
|
|
||||||
<set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="2" colspan="5">
|
|
||||||
<widget class="QLineEdit" name="le_ratedVol">
|
|
||||||
<property name="readOnly">
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="7">
|
|
||||||
<widget class="QLabel" name="label_2">
|
|
||||||
<property name="text">
|
|
||||||
<string>V</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="8" colspan="2">
|
|
||||||
<widget class="QLabel" name="label_3">
|
|
||||||
<property name="text">
|
|
||||||
<string>工频耐压</string>
|
|
||||||
</property>
|
|
||||||
<property name="alignment">
|
|
||||||
<set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="12" colspan="2">
|
|
||||||
<widget class="QLineEdit" name="le_pfwv_pt">
|
|
||||||
<property name="readOnly">
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="14" colspan="2">
|
|
||||||
<widget class="QLabel" name="label_4">
|
|
||||||
<property name="text">
|
|
||||||
<string>V/1min</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="16" colspan="2">
|
|
||||||
<widget class="QLabel" name="label_5">
|
<widget class="QLabel" name="label_5">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>冲击耐压</string>
|
<string>冲击耐压</string>
|
||||||
|
|
@ -117,17 +39,27 @@
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="18" colspan="3">
|
<item row="5" column="14">
|
||||||
<widget class="QLineEdit" name="le_iwv_pt">
|
<widget class="QComboBox" name="cb_wcm">
|
||||||
<property name="readOnly">
|
<property name="currentText">
|
||||||
<bool>false</bool>
|
<string>Yn</string>
|
||||||
</property>
|
</property>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>Yn</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>d(open)</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="21">
|
<item row="3" column="3" colspan="2">
|
||||||
<widget class="QLabel" name="label_6">
|
<widget class="QRadioButton" name="rb_spt_pt">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>V</string>
|
<string>单相互感器</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
|
@ -141,54 +73,72 @@
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="2" colspan="5">
|
<item row="5" column="7">
|
||||||
<widget class="QLineEdit" name="le_ratedVolFactor">
|
<widget class="QLineEdit" name="le_slc_pt">
|
||||||
<property name="readOnly">
|
<property name="readOnly">
|
||||||
<bool>false</bool>
|
<bool>false</bool>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="8" colspan="4">
|
<item row="4" column="0" colspan="4">
|
||||||
<widget class="QLabel" name="label_8">
|
<widget class="QLabel" name="label_12">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>一次绕组接线接地方式</string>
|
<string>本元件内含PT二次绕组的配置:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="5" column="3">
|
||||||
|
<widget class="QLabel" name="label_14">
|
||||||
|
<property name="text">
|
||||||
|
<string>精度等级</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="5" column="8">
|
||||||
|
<widget class="QLabel" name="label_17">
|
||||||
|
<property name="text">
|
||||||
|
<string>变比</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="alignment">
|
<property name="alignment">
|
||||||
<set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set>
|
<set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="12" colspan="2">
|
<item row="1" column="4">
|
||||||
<widget class="QLineEdit" name="le_pwwgm">
|
<widget class="QLabel" name="label_2">
|
||||||
<property name="readOnly">
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="2" column="16" colspan="2">
|
|
||||||
<widget class="QLabel" name="label_9">
|
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>额定频率</string>
|
<string>V</string>
|
||||||
</property>
|
|
||||||
<property name="alignment">
|
|
||||||
<set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set>
|
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="18" colspan="3">
|
<item row="2" column="13" colspan="2">
|
||||||
<widget class="QLineEdit" name="le_rf_pt">
|
<widget class="QLineEdit" name="le_rf_pt">
|
||||||
<property name="readOnly">
|
<property name="readOnly">
|
||||||
<bool>false</bool>
|
<bool>false</bool>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="21">
|
<item row="2" column="15">
|
||||||
<widget class="QLabel" name="label_10">
|
<widget class="QLabel" name="label_10">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Hz</string>
|
<string>Hz</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item row="5" column="9">
|
||||||
|
<widget class="QLineEdit" name="le_tr_pt">
|
||||||
|
<property name="readOnly">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="5" column="4">
|
||||||
|
<widget class="QLineEdit" name="le_ac_pt">
|
||||||
|
<property name="readOnly">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
<item row="3" column="0">
|
<item row="3" column="0">
|
||||||
<widget class="QLabel" name="label_11">
|
<widget class="QLabel" name="label_11">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
|
|
@ -196,122 +146,14 @@
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="3" column="1" colspan="3">
|
<item row="3" column="1" colspan="2">
|
||||||
<widget class="QRadioButton" name="rb_tpt_pt">
|
<widget class="QRadioButton" name="rb_tpt_pt">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>三相互感器</string>
|
<string>三相互感器</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="3" column="4" colspan="3">
|
<item row="5" column="15">
|
||||||
<widget class="QRadioButton" name="rb_spt_pt">
|
|
||||||
<property name="text">
|
|
||||||
<string>单相互感器</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="4" column="0" colspan="6">
|
|
||||||
<widget class="QLabel" name="label_12">
|
|
||||||
<property name="text">
|
|
||||||
<string>本元件内含PT二次绕组的配置:</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="5" column="0">
|
|
||||||
<widget class="QLabel" name="label_13">
|
|
||||||
<property name="text">
|
|
||||||
<string>变比</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="5" column="1" colspan="2">
|
|
||||||
<widget class="QLineEdit" name="le_tr_pt">
|
|
||||||
<property name="readOnly">
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="5" column="3" colspan="2">
|
|
||||||
<widget class="QLabel" name="label_17">
|
|
||||||
<property name="text">
|
|
||||||
<string>最小变比</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="5" column="5">
|
|
||||||
<widget class="QLineEdit" name="le_trMin_pt">
|
|
||||||
<property name="readOnly">
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="5" column="6" colspan="3">
|
|
||||||
<widget class="QLabel" name="label_18">
|
|
||||||
<property name="text">
|
|
||||||
<string>最大变比</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="5" column="9">
|
|
||||||
<widget class="QLineEdit" name="le_trMax_pt">
|
|
||||||
<property name="readOnly">
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="5" column="10">
|
|
||||||
<widget class="QLabel" name="label_14">
|
|
||||||
<property name="text">
|
|
||||||
<string>精度等级</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="5" column="11" colspan="2">
|
|
||||||
<widget class="QLineEdit" name="le_ac_pt">
|
|
||||||
<property name="readOnly">
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="5" column="13" colspan="2">
|
|
||||||
<widget class="QLabel" name="label_15">
|
|
||||||
<property name="text">
|
|
||||||
<string>二次负载容量</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="5" column="15" colspan="2">
|
|
||||||
<widget class="QLineEdit" name="le_slc_pt">
|
|
||||||
<property name="readOnly">
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="5" column="17" colspan="2">
|
|
||||||
<widget class="QLabel" name="label_16">
|
|
||||||
<property name="text">
|
|
||||||
<string>绕组接法</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="5" column="19">
|
|
||||||
<widget class="QComboBox" name="cb_wcm">
|
|
||||||
<property name="currentText">
|
|
||||||
<string>Y</string>
|
|
||||||
</property>
|
|
||||||
<item>
|
|
||||||
<property name="text">
|
|
||||||
<string>Y</string>
|
|
||||||
</property>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<property name="text">
|
|
||||||
<string>Δ</string>
|
|
||||||
</property>
|
|
||||||
</item>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="5" column="20" colspan="2">
|
|
||||||
<widget class="QPushButton" name="btn_add_pt">
|
<widget class="QPushButton" name="btn_add_pt">
|
||||||
<property name="minimumSize">
|
<property name="minimumSize">
|
||||||
<size>
|
<size>
|
||||||
|
|
@ -354,10 +196,84 @@ QPushButton:disabled {
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="6" column="0" colspan="22">
|
<item row="1" column="15">
|
||||||
|
<widget class="QLabel" name="label_6">
|
||||||
|
<property name="text">
|
||||||
|
<string>V</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="2" colspan="2">
|
||||||
|
<widget class="QLineEdit" name="le_ratedVolFactor">
|
||||||
|
<property name="readOnly">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="11" colspan="2">
|
||||||
|
<widget class="QLabel" name="label_9">
|
||||||
|
<property name="text">
|
||||||
|
<string>额定频率</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="0" colspan="16">
|
||||||
|
<widget class="QLabel" name="label_title_pt">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>0</width>
|
||||||
|
<height>30</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>16777215</width>
|
||||||
|
<height>30</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="styleSheet">
|
||||||
|
<string notr="true">border:4px double dark;</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="2" colspan="2">
|
||||||
|
<widget class="QLineEdit" name="le_ratedVol">
|
||||||
|
<property name="readOnly">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="5" column="5" colspan="2">
|
||||||
|
<widget class="QLabel" name="label_15">
|
||||||
|
<property name="text">
|
||||||
|
<string>二次负载容量</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="5" column="1" colspan="2">
|
||||||
|
<widget class="QLineEdit" name="le_tr_range_pt">
|
||||||
|
<property name="readOnly">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="5" column="12" colspan="2">
|
||||||
|
<widget class="QLabel" name="label_16">
|
||||||
|
<property name="text">
|
||||||
|
<string>绕组接法</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="6" column="0" colspan="16">
|
||||||
<widget class="QTableWidget" name="tb_pt">
|
<widget class="QTableWidget" name="tb_pt">
|
||||||
<attribute name="horizontalHeaderVisible">
|
<attribute name="horizontalHeaderVisible">
|
||||||
<bool>false</bool>
|
<bool>true</bool>
|
||||||
</attribute>
|
</attribute>
|
||||||
<attribute name="horizontalHeaderDefaultSectionSize">
|
<attribute name="horizontalHeaderDefaultSectionSize">
|
||||||
<number>130</number>
|
<number>130</number>
|
||||||
|
|
@ -365,19 +281,17 @@ QPushButton:disabled {
|
||||||
<attribute name="horizontalHeaderStretchLastSection">
|
<attribute name="horizontalHeaderStretchLastSection">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
</attribute>
|
</attribute>
|
||||||
|
<attribute name="verticalHeaderVisible">
|
||||||
|
<bool>false</bool>
|
||||||
|
</attribute>
|
||||||
<column>
|
<column>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>变比</string>
|
<string>序号</string>
|
||||||
</property>
|
</property>
|
||||||
</column>
|
</column>
|
||||||
<column>
|
<column>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>最小变比</string>
|
<string>变比范围</string>
|
||||||
</property>
|
|
||||||
</column>
|
|
||||||
<column>
|
|
||||||
<property name="text">
|
|
||||||
<string>最大变比</string>
|
|
||||||
</property>
|
</property>
|
||||||
</column>
|
</column>
|
||||||
<column>
|
<column>
|
||||||
|
|
@ -392,14 +306,84 @@ QPushButton:disabled {
|
||||||
</column>
|
</column>
|
||||||
<column>
|
<column>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>绕组接法</string>
|
<string>变比</string>
|
||||||
</property>
|
</property>
|
||||||
</column>
|
</column>
|
||||||
<column>
|
<column>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>删除</string>
|
<string>极性</string>
|
||||||
</property>
|
</property>
|
||||||
</column>
|
</column>
|
||||||
|
<column>
|
||||||
|
<property name="text">
|
||||||
|
<string>绕组接法</string>
|
||||||
|
</property>
|
||||||
|
</column>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="13" colspan="2">
|
||||||
|
<widget class="QLineEdit" name="le_iwv_pt">
|
||||||
|
<property name="readOnly">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="5" column="0">
|
||||||
|
<widget class="QLabel" name="label_13">
|
||||||
|
<property name="text">
|
||||||
|
<string>变比范围</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="5" colspan="3">
|
||||||
|
<widget class="QLabel" name="label_8">
|
||||||
|
<property name="text">
|
||||||
|
<string>一次绕组接线接地方式</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="5" colspan="3">
|
||||||
|
<widget class="QLabel" name="label_3">
|
||||||
|
<property name="text">
|
||||||
|
<string>工频耐压</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="8">
|
||||||
|
<widget class="QLineEdit" name="le_pfwv_pt">
|
||||||
|
<property name="readOnly">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="8">
|
||||||
|
<widget class="QLineEdit" name="le_pwwgm">
|
||||||
|
<property name="readOnly">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="9">
|
||||||
|
<widget class="QLabel" name="label_4">
|
||||||
|
<property name="text">
|
||||||
|
<string>V/1min</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0" colspan="2">
|
||||||
|
<widget class="QLabel" name="label">
|
||||||
|
<property name="text">
|
||||||
|
<string>额定电压</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
|
|
|
||||||
|
|
@ -68,8 +68,8 @@ public:
|
||||||
bool ifBayExist(QUuid uuid);
|
bool ifBayExist(QUuid uuid);
|
||||||
bool deleteBay(QUuid uuid);
|
bool deleteBay(QUuid uuid);
|
||||||
/*********************************************************************************/
|
/*********************************************************************************/
|
||||||
bool insertMeasurement(QString name,QString tag,int type,QJsonObject dataSource,QJsonObject eventPlan,int size,QUuid bayId,QUuid componentId);
|
bool insertMeasurement(QString name,QString tag,int type,QJsonObject dataSource,QJsonObject eventPlan,QJsonObject binding,int size,QUuid bayId,QUuid componentId);
|
||||||
bool updateMeasurement(QString name,int type,QJsonObject dataSource,QJsonObject eventPlan,int size,QUuid componentId);
|
bool updateMeasurement(QString name,int type,QJsonObject dataSource,QJsonObject eventPlan,QJsonObject binding,int size,QUuid componentId);
|
||||||
bool delteMeasurement(QString name,QUuid componentId);
|
bool delteMeasurement(QString name,QUuid componentId);
|
||||||
bool ifMeasureExist(QString name,QUuid componentId);
|
bool ifMeasureExist(QString name,QUuid componentId);
|
||||||
QList<MeasurementInfo> getMeasurement(QUuid componentId);
|
QList<MeasurementInfo> getMeasurement(QUuid componentId);
|
||||||
|
|
|
||||||
|
|
@ -1387,21 +1387,25 @@ bool DataBase::deleteBay(QUuid uuid)
|
||||||
}
|
}
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
bool DataBase::insertMeasurement(QString name,QString tag,int type,QJsonObject dataSource,QJsonObject eventPlan,int size,QUuid bayId,QUuid componentId)
|
bool DataBase::insertMeasurement(QString name,QString tag,int type,QJsonObject dataSource,QJsonObject eventPlan,QJsonObject binding,int size,QUuid bayId,QUuid componentId)
|
||||||
{
|
{
|
||||||
QString strSQL = "INSERT INTO measurement(tag, name, type, data_source, event_plan, size, bay_uuid, component_uuid) VALUES (?, ?, ?, ?, ?, ?, ?, ?)";
|
QString strSQL = "INSERT INTO measurement(tag, name, type, data_source, event_plan, binding, size, bay_uuid, component_uuid) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)";
|
||||||
QJsonDocument dataDoc(dataSource);
|
QJsonDocument dataDoc(dataSource);
|
||||||
QString strData = dataDoc.toJson(QJsonDocument::Compact);
|
QString strData = dataDoc.toJson(QJsonDocument::Compact);
|
||||||
|
|
||||||
QJsonDocument eventDoc(eventPlan);
|
QJsonDocument eventDoc(eventPlan);
|
||||||
QString strEvent = eventDoc.toJson(QJsonDocument::Compact);
|
QString strEvent = eventDoc.toJson(QJsonDocument::Compact);
|
||||||
|
|
||||||
|
QJsonDocument bindDoc(binding);
|
||||||
|
QString strBind = bindDoc.toJson(QJsonDocument::Compact);
|
||||||
|
|
||||||
QVariantList params;
|
QVariantList params;
|
||||||
params.append(tag);
|
params.append(tag);
|
||||||
params.append(name);
|
params.append(name);
|
||||||
params.append(type);
|
params.append(type);
|
||||||
params.append(strData);
|
params.append(strData);
|
||||||
params.append(strEvent);
|
params.append(strEvent);
|
||||||
|
params.append(strBind);
|
||||||
params.append(size);
|
params.append(size);
|
||||||
params.append(bayId);
|
params.append(bayId);
|
||||||
params.append(componentId);
|
params.append(componentId);
|
||||||
|
|
@ -1418,7 +1422,7 @@ bool DataBase::insertMeasurement(QString name,QString tag,int type,QJsonObject d
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool DataBase::updateMeasurement(QString name,int type,QJsonObject dataSource,QJsonObject eventPlan,int size,QUuid componentId)
|
bool DataBase::updateMeasurement(QString name,int type,QJsonObject dataSource,QJsonObject eventPlan,QJsonObject binding,int size,QUuid componentId)
|
||||||
{
|
{
|
||||||
QJsonDocument dataDoc(dataSource);
|
QJsonDocument dataDoc(dataSource);
|
||||||
QString strData = dataDoc.toJson(QJsonDocument::Compact);
|
QString strData = dataDoc.toJson(QJsonDocument::Compact);
|
||||||
|
|
@ -1426,11 +1430,15 @@ bool DataBase::updateMeasurement(QString name,int type,QJsonObject dataSource,QJ
|
||||||
QJsonDocument eventDoc(eventPlan);
|
QJsonDocument eventDoc(eventPlan);
|
||||||
QString strEvent = eventDoc.toJson(QJsonDocument::Compact);
|
QString strEvent = eventDoc.toJson(QJsonDocument::Compact);
|
||||||
|
|
||||||
QString strSQL = "UPDATE measurement SET type = ?,data_source = ?,event_plan = ?,size = ? WHERE name = ? AND component_uuid = ?";
|
QJsonDocument bindDoc(binding);
|
||||||
|
QString strBind = eventDoc.toJson(QJsonDocument::Compact);
|
||||||
|
|
||||||
|
QString strSQL = "UPDATE measurement SET type = ?,data_source = ?,event_plan = ?,binding = ?,size = ? WHERE name = ? AND component_uuid = ?";
|
||||||
QVariantList params;
|
QVariantList params;
|
||||||
params.append(type);
|
params.append(type);
|
||||||
params.append(strData);
|
params.append(strData);
|
||||||
params.append(strEvent);
|
params.append(strEvent);
|
||||||
|
params.append(strBind);
|
||||||
params.append(size);
|
params.append(size);
|
||||||
params.append(name);
|
params.append(name);
|
||||||
params.append(componentId);
|
params.append(componentId);
|
||||||
|
|
@ -1492,7 +1500,7 @@ bool DataBase::ifMeasureExist(QString name,QUuid componentId)
|
||||||
QList<MeasurementInfo> DataBase::getMeasurement(QUuid componentId)
|
QList<MeasurementInfo> DataBase::getMeasurement(QUuid componentId)
|
||||||
{
|
{
|
||||||
QList<MeasurementInfo> lst;
|
QList<MeasurementInfo> lst;
|
||||||
QString strSQL = "SELECT tag, name, type, data_source, event_plan, size, bay_uuid, component_uuid FROM measurement WHERE component_uuid = ?";
|
QString strSQL = "SELECT tag, name, type, data_source, event_plan, binding, size, bay_uuid, component_uuid FROM measurement WHERE component_uuid = ?";
|
||||||
QVariantList params;
|
QVariantList params;
|
||||||
params.append(componentId);
|
params.append(componentId);
|
||||||
|
|
||||||
|
|
@ -1512,9 +1520,12 @@ QList<MeasurementInfo> DataBase::getMeasurement(QUuid componentId)
|
||||||
QString sEvent = query.value(4).toString();
|
QString sEvent = query.value(4).toString();
|
||||||
QJsonObject objEvent = QstringToJson(sEvent);
|
QJsonObject objEvent = QstringToJson(sEvent);
|
||||||
|
|
||||||
info.size = query.value(5).toInt();
|
QString sBinding = query.value(5).toString();
|
||||||
info.bayUuid = QUuid(query.value(6).toString());
|
QJsonObject objBinding = QstringToJson(sBinding);
|
||||||
info.componentUuid = QUuid(query.value(7).toString());
|
|
||||||
|
info.size = query.value(6).toInt();
|
||||||
|
info.bayUuid = QUuid(query.value(7).toString());
|
||||||
|
info.componentUuid = QUuid(query.value(8).toString());
|
||||||
|
|
||||||
info.nSource = objData["type"].toInt();
|
info.nSource = objData["type"].toInt();
|
||||||
QJsonObject objIoAddress = objData["io_address"].toObject();
|
QJsonObject objIoAddress = objData["io_address"].toObject();
|
||||||
|
|
@ -1546,6 +1557,23 @@ QList<MeasurementInfo> DataBase::getMeasurement(QUuid componentId)
|
||||||
for(const QJsonValue ¶Value:arrPara){
|
for(const QJsonValue ¶Value:arrPara){
|
||||||
info.lstParameter.append(paraValue.toString());
|
info.lstParameter.append(paraValue.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(objBinding.contains("ct") || objBinding.contains("pt") ){
|
||||||
|
if(objBinding.contains("ct")){
|
||||||
|
QJsonObject objWind = objBinding["ct"].toObject();
|
||||||
|
info.nRatio = objWind["ratio"].toInt();
|
||||||
|
info.nPolarity = objWind["polarity"].toInt();
|
||||||
|
info.nIndex = objWind["index"].toInt();
|
||||||
|
info.sWindType = "ct";
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
QJsonObject objWind = objBinding["pt"].toObject();
|
||||||
|
info.nRatio = objWind["ratio"].toInt();
|
||||||
|
info.nPolarity = objWind["polarity"].toInt();
|
||||||
|
info.nIndex = objWind["index"].toInt();
|
||||||
|
info.sWindType = "pt";
|
||||||
|
}
|
||||||
|
}
|
||||||
lst.append(info);
|
lst.append(info);
|
||||||
}
|
}
|
||||||
query.clear();
|
query.clear();
|
||||||
|
|
@ -1560,7 +1588,7 @@ QList<MeasurementInfo> DataBase::getMeasurement(QUuid componentId)
|
||||||
QMap<QString,MeasurementInfo> DataBase::getAllMeasurements()
|
QMap<QString,MeasurementInfo> DataBase::getAllMeasurements()
|
||||||
{
|
{
|
||||||
QMap<QString,MeasurementInfo> lst;
|
QMap<QString,MeasurementInfo> lst;
|
||||||
QString strSQL = "SELECT tag, name, type, data_source, event_plan, size, bay_uuid, component_uuid FROM measurement";
|
QString strSQL = "SELECT tag, name, type, data_source, event_plan, binding, size, bay_uuid, component_uuid FROM measurement";
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|
@ -1578,13 +1606,16 @@ QMap<QString,MeasurementInfo> DataBase::getAllMeasurements()
|
||||||
QString sEvent = query.value(4).toString();
|
QString sEvent = query.value(4).toString();
|
||||||
QJsonObject objEvent = QstringToJson(sEvent);
|
QJsonObject objEvent = QstringToJson(sEvent);
|
||||||
|
|
||||||
info.size = query.value(5).toInt();
|
QString sBind = query.value(5).toString();
|
||||||
info.bayUuid = QUuid(query.value(6).toString());
|
QJsonObject objBinding = QstringToJson(sBind);
|
||||||
info.componentUuid = QUuid(query.value(7).toString());
|
|
||||||
|
info.size = query.value(6).toInt();
|
||||||
|
info.bayUuid = QUuid(query.value(7).toString());
|
||||||
|
info.componentUuid = QUuid(query.value(8).toString());
|
||||||
|
|
||||||
info.nSource = objData["type"].toInt();
|
info.nSource = objData["type"].toInt();
|
||||||
QJsonObject objIoAddress = objData["io_address"].toObject();
|
QJsonObject objIoAddress = objData["io_address"].toObject();
|
||||||
info.sStation = objData["station"].toString();
|
info.sStation = objIoAddress["station"].toString();
|
||||||
info.sDevice = objIoAddress["device"].toString();
|
info.sDevice = objIoAddress["device"].toString();
|
||||||
info.sChannel = objIoAddress["channel"].toString();
|
info.sChannel = objIoAddress["channel"].toString();
|
||||||
info.nPacket = objIoAddress["packet"].toInt();
|
info.nPacket = objIoAddress["packet"].toInt();
|
||||||
|
|
@ -1612,6 +1643,21 @@ QMap<QString,MeasurementInfo> DataBase::getAllMeasurements()
|
||||||
for(const QJsonValue ¶Value:arrPara){
|
for(const QJsonValue ¶Value:arrPara){
|
||||||
info.lstParameter.append(paraValue.toString());
|
info.lstParameter.append(paraValue.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(objBinding.contains("ct") || objBinding.contains("pt") ){
|
||||||
|
if(objBinding.contains("ct")){
|
||||||
|
QJsonObject objWind = objBinding["ct"].toObject();
|
||||||
|
info.nRatio = objWind["ratio"].toInt();
|
||||||
|
info.nPolarity = objWind["polarity"].toInt();
|
||||||
|
info.nIndex = objWind["index"].toInt();
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
QJsonObject objWind = objBinding["pt"].toObject();
|
||||||
|
info.nRatio = objWind["ratio"].toInt();
|
||||||
|
info.nPolarity = objWind["polarity"].toInt();
|
||||||
|
info.nIndex = objWind["index"].toInt();
|
||||||
|
}
|
||||||
|
}
|
||||||
lst.insert(info.tag,info);
|
lst.insert(info.tag,info);
|
||||||
}
|
}
|
||||||
query.clear();
|
query.clear();
|
||||||
|
|
@ -1625,7 +1671,7 @@ QMap<QString,MeasurementInfo> DataBase::getAllMeasurements()
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
bool DataBase::insertExtraProperty(ExtraProperty pro)
|
bool DataBase::insertExtraProperty(ExtraProperty pro)
|
||||||
{
|
{
|
||||||
QString strSQL = "INSERT INTO properties_setting(code, tag, name, grid_name, zone_name, station_name, current_level, bay_name, component_name, group_name, type_name, grid_tag, zone_tag, station_tag, page_tag, bay_tag, component_uuid, group_tag, type_tag, source_type, source_config, connect_para) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
|
QString strSQL = "INSERT INTO properties_setting(code, tag, name, grid_name, zone_name, station_name, current_level, bay_name, component_name, group_name, type_name, grid_tag, zone_tag, station_tag, page_tag, bay_tag, component_uuid, component_tag, group_tag, type_tag, source_type, source_config, connect_para) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
|
||||||
QJsonDocument configDoc(QJsonObject::fromVariantMap(pro.sourceConfig));
|
QJsonDocument configDoc(QJsonObject::fromVariantMap(pro.sourceConfig));
|
||||||
QString strConfig = configDoc.toJson(QJsonDocument::Compact);
|
QString strConfig = configDoc.toJson(QJsonDocument::Compact);
|
||||||
|
|
||||||
|
|
@ -1648,6 +1694,7 @@ bool DataBase::insertExtraProperty(ExtraProperty pro)
|
||||||
params.append(pro.page_tag);
|
params.append(pro.page_tag);
|
||||||
params.append(pro.bay_tag);
|
params.append(pro.bay_tag);
|
||||||
params.append(pro.component_uuid.toString());
|
params.append(pro.component_uuid.toString());
|
||||||
|
params.append(pro.component_tag);
|
||||||
params.append(pro.group_tag);
|
params.append(pro.group_tag);
|
||||||
params.append(pro.type_tag);
|
params.append(pro.type_tag);
|
||||||
params.append(pro.sourceType);
|
params.append(pro.sourceType);
|
||||||
|
|
@ -1731,7 +1778,7 @@ bool DataBase::ifExtraPropertyExist(QString code)
|
||||||
QList<ExtraProperty> DataBase::getCompoExtraProperty(QUuid uid)
|
QList<ExtraProperty> DataBase::getCompoExtraProperty(QUuid uid)
|
||||||
{
|
{
|
||||||
QList<ExtraProperty> lst;
|
QList<ExtraProperty> lst;
|
||||||
QString strSQL = "SELECT code, tag, name, grid_name, zone_name, station_name, current_level, bay_name, component_name, group_name, type_name, grid_tag, zone_tag, station_tag, page_tag, bay_tag, component_uuid, group_tag, type_tag, source_type, source_config, connect_para FROM properties_setting WHERE component_uuid = ?";
|
QString strSQL = "SELECT code, tag, name, grid_name, zone_name, station_name, current_level, bay_name, component_name, group_name, type_name, grid_tag, zone_tag, station_tag, page_tag, bay_tag, component_uuid, component_tag, group_tag, type_tag, source_type, source_config, connect_para FROM properties_setting WHERE component_uuid = ?";
|
||||||
QVariantList params;
|
QVariantList params;
|
||||||
params.append(uid);
|
params.append(uid);
|
||||||
|
|
||||||
|
|
@ -1759,14 +1806,15 @@ QList<ExtraProperty> DataBase::getCompoExtraProperty(QUuid uid)
|
||||||
info.page_tag = query.value(14).toString();
|
info.page_tag = query.value(14).toString();
|
||||||
info.bay_tag = query.value(15).toString();
|
info.bay_tag = query.value(15).toString();
|
||||||
info.component_uuid = QUuid(query.value(16).toString());
|
info.component_uuid = QUuid(query.value(16).toString());
|
||||||
info.group_tag = query.value(17).toString();
|
info.component_tag = query.value(17).toString();
|
||||||
info.type_tag = query.value(18).toString();
|
info.group_tag = query.value(18).toString();
|
||||||
|
info.type_tag = query.value(19).toString();
|
||||||
|
|
||||||
info.sourceType = query.value(19).toString();
|
info.sourceType = query.value(20).toString();
|
||||||
QString sConfig = query.value(20).toString();
|
QString sConfig = query.value(21).toString();
|
||||||
QJsonObject objConfig = QstringToJson(sConfig);
|
QJsonObject objConfig = QstringToJson(sConfig);
|
||||||
info.sourceConfig = objConfig.toVariantMap();
|
info.sourceConfig = objConfig.toVariantMap();
|
||||||
info.connect_para = query.value(21).toString();
|
info.connect_para = query.value(22).toString();
|
||||||
|
|
||||||
lst.append(info);
|
lst.append(info);
|
||||||
}
|
}
|
||||||
|
|
@ -1782,7 +1830,7 @@ QList<ExtraProperty> DataBase::getCompoExtraProperty(QUuid uid)
|
||||||
QList<ExtraProperty> DataBase::getAllExtraProperty()
|
QList<ExtraProperty> DataBase::getAllExtraProperty()
|
||||||
{
|
{
|
||||||
QList<ExtraProperty> lst;
|
QList<ExtraProperty> lst;
|
||||||
QString strSQL = "SELECT code, tag, name, grid_name, zone_name, station_name, current_level, bay_name, component_name, group_name, type_name, grid_tag, zone_tag, station_tag, page_tag, bay_tag, component_uuid, group_tag, type_tag, source_type, source_config, connect_para FROM properties_setting";
|
QString strSQL = "SELECT code, tag, name, grid_name, zone_name, station_name, current_level, bay_name, component_name, group_name, type_name, grid_tag, zone_tag, station_tag, page_tag, bay_tag, component_uuid, component_tag, group_tag, type_tag, source_type, source_config, connect_para FROM properties_setting";
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|
@ -1808,14 +1856,15 @@ QList<ExtraProperty> DataBase::getAllExtraProperty()
|
||||||
info.page_tag = query.value(14).toString();
|
info.page_tag = query.value(14).toString();
|
||||||
info.bay_tag = query.value(15).toString();
|
info.bay_tag = query.value(15).toString();
|
||||||
info.component_uuid = QUuid(query.value(16).toString());
|
info.component_uuid = QUuid(query.value(16).toString());
|
||||||
info.group_tag = query.value(17).toString();
|
info.component_tag = query.value(17).toString();
|
||||||
info.type_tag = query.value(18).toString();
|
info.group_tag = query.value(18).toString();
|
||||||
|
info.type_tag = query.value(19).toString();
|
||||||
|
|
||||||
info.sourceType = query.value(19).toString();
|
info.sourceType = query.value(20).toString();
|
||||||
QString sConfig = query.value(20).toString();
|
QString sConfig = query.value(21).toString();
|
||||||
QJsonObject objConfig = QstringToJson(sConfig);
|
QJsonObject objConfig = QstringToJson(sConfig);
|
||||||
info.sourceConfig = objConfig.toVariantMap();
|
info.sourceConfig = objConfig.toVariantMap();
|
||||||
info.connect_para = query.value(21).toString();
|
info.connect_para = query.value(22).toString();
|
||||||
|
|
||||||
lst.append(info);
|
lst.append(info);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue