123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- #pragma once
- #include "Common.h"
- #include "ui_DialogPortValue.h"
- /// <summary>
- /// 双击Port功能块显示的界面,用于绑定接口变量
- /// </summary>
- class POU;
- class DialogPortValue : public QDialog
- {
- Q_OBJECT
- public:
- DialogPortValue(const TOOL* port, POU* localPou, QWidget *parent = nullptr);
- ~DialogPortValue();
- // 获取用户选择的工具信息
- const _INTERFACE* GetSelectedInf()
- {
- return selInf;
- };
- private:
- Ui::DialogPortValue ui;
- private:
- // 当前选定的分组
- typedef enum class _tagComboSelGroup
- {
- SEL_GROUP_GVL, // 选择的是全局变量页面
- SEL_GROUP_POU, // 选择的是POU页面
- SEL_GROUP_HDW, // 选择的是硬件组态页面
- SEL_GROUP_COUNT
- } SEL_GROUP;
- Q_ENUM(SEL_GROUP);
- // 对话框初始化
- void initUI();
- // 添加兼容的Pou工具到树形结构中
- void AddPouToolsToTree(const POU* pPou);
- // 添加兼容的Pou变量到树形结构中
- bool AddPouVariablesToTree(const QString& strGroup);
- // 添加兼容的硬件工具
- void AddHdwToolsToTree();
- // 添加兼容的硬件局部变量
- void AddHdwVariablesToTree();
- // 添加Tool子节点
- QTreeWidgetItem* AddToolTreeItem(const QString& toolName);
- // 添加接口子节点
- void AddInterfaceTreeItem(QTreeWidgetItem* pToolItem, const _INTERFACE* pInf);
- // 添加变量分组子节点
- QTreeWidgetItem* AddVariableGroupTreeItem(TOOL_TYPE varType);
- // 添加变量子节点
- void AddVariableTreeItem(QTreeWidgetItem* pToolItem, const VARIABLE* var);
- private slots:
- // select按钮
- void onButtonSelectClicked();
- // Combo框选择变更时,需要切换对应的变量列表
- void onComboGroupChanged(int nIndex);
- // 鼠标双击,直接选定接口
- // void mouseDoubleClickEvent(QMouseEvent* event) override;
- //// 事件过滤器,拦截发往treeTool的双击事件
- //bool eventFilter(QObject* target, QEvent* event);
- private:
- const TOOL* portInfo; // 本对话框绑定的port工具信息
- const _INTERFACE* selInf; // 用户最终选择的接口信息
- const GVLS* m_pAllVariables; // 获取全部变量信息
- const POU* m_pLocalPou; // 本Port窗口对应的Pou数据
- QHash<QTreeWidgetItem*, const _INTERFACE*> m_ItemInfs; // 每个树节点携带的接口信息
- };
|