DiagramDesigner/diagramCavas/include/monitorPanel.h

70 lines
2.7 KiB
C
Raw Normal View History

2025-11-14 19:31:09 +08:00
#ifndef MONITORPANEL_H
#define MONITORPANEL_H
#include <QWidget>
2025-11-21 19:22:41 +08:00
#include <QToolBar>
2025-11-14 19:31:09 +08:00
#include "baseDrawingPanel.h"
class PowerEntity;
2025-11-21 19:22:41 +08:00
class MonitorSideBarDlg;
class MonitorConfigDlg;
2025-11-25 20:29:32 +08:00
class MonitorDetailAttributeDlg;
2025-12-01 20:29:36 +08:00
class MonitorDisplaySettingDlg;
2025-11-14 19:31:09 +08:00
class MonitorPanel : public BaseDrawingPanel
{
Q_OBJECT
public:
MonitorPanel(PowerEntity* pEntity,QWidget *parent = nullptr,DiagramMode mode = DM_edit);
~MonitorPanel();
2025-11-21 19:22:41 +08:00
void initial();
2025-11-14 19:31:09 +08:00
QJsonObject getMonitorInfo() const; //返回运行时的item信息
void loadNodes(QJsonObject obj) override; //加载图元信息
void saveNodes(int pageId) override; //保存到数据库
void setParentPage(const QString& str) {_sParentPage = str;}
QString getParentPage() {return _sParentPage;}
2025-11-21 19:22:41 +08:00
void updateSelectedItems(QList<monitorRelationItem>,bool);
QStandardItemModel* getLstModel() {return _itemListmodel;}
void initMonitorConfig(); //初始化参数设置(每个运行时可能不同)
2025-11-25 20:29:32 +08:00
void itemSelected(QUuid); //item选中事件
void detailItemSelected(QUuid); //显示详细属性页
2025-12-01 20:29:36 +08:00
void initDisplayState(); //初始化显示状态参照表
void initDisplaySetting(); //初始化显示状态设置
2025-12-05 18:55:58 +08:00
public:
//对层级关系的序列化与反序列化
QJsonArray serializeRelationToJsonArray(const QList<monitorRelationItem>& data) const;
bool deserializeRelationFromJsonArray(const QJsonArray& jsonArray, QList<monitorRelationItem>& result);
//对para的序列化与反序列化
QJsonArray serializeParaToJsonArray(const QMap<QUuid, QList<monitorItemAttributeInfo>>& data) const;
bool deserializeParaFromJsonArray(const QJsonArray& jsonArray,QMap<QUuid, QList<monitorItemAttributeInfo>>& result);
//对displaySetiing的序列化与反序列化
QJsonArray serializeDisplayToJsonArray(const QMap<monitorItemTypeStruct, QMap<monitorItemStateStruct, monitorItemDisplayInfo>>& data) const;
void deserializeDisplayFromJsonArray(const QJsonArray& jsonArray,QMap<monitorItemTypeStruct, QMap<monitorItemStateStruct, monitorItemDisplayInfo>>& result);
2025-11-21 19:22:41 +08:00
public slots:
void onRunClicked();
void onStopClicked();
void onConfigClicked();
2025-12-01 20:29:36 +08:00
void onItemConfigClicked();
2025-11-21 19:22:41 +08:00
void onConncecClicked();
2025-11-14 19:31:09 +08:00
protected:
void closeEvent(QCloseEvent *closeEvent) override;
2025-11-21 19:22:41 +08:00
private:
void createToolBar();
2025-11-14 19:31:09 +08:00
private:
QString _sParentPage; //派生自哪个工程
2025-11-21 19:22:41 +08:00
QToolBar* _toolBar;
MonitorSideBarDlg* _sideBar;
MonitorConfigDlg* _pConfigDlg;
QStandardItemModel* _itemListmodel;
2025-11-25 20:29:32 +08:00
MonitorDetailAttributeDlg* _detailAttributeDlg;
2025-12-01 20:29:36 +08:00
MonitorDisplaySettingDlg* _displaySettingDlg;
2025-11-25 20:29:32 +08:00
QMenu* _menuSetting;
2025-11-14 19:31:09 +08:00
};
#endif