123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- #pragma once
- #include "Common.h"
- #include "ui_WindowAppVariableTable.h"
- /// <summary>
- /// 用来处理变量显示和交互逻辑的表格
- /// </summary>
- class WindowAppVariableTable : public QTableWidget
- {
- Q_OBJECT
- public:
- WindowAppVariableTable(QWidget *parent = Q_NULLPTR);
- ~WindowAppVariableTable();
- public:
- // 初始化变量表格
- void initTable(const QString& strGroup, GVL_MODE gvlMode = GVL_MODE::GVL_BASIC);
- // 按标准模式初始化变量表格Header
- void initStandardTableHeader();
- // 按DB模式初始化变量表格Header
- void initDBTableHeader();
- // 表格中添加新的一行(标准/普通模式)
- int insertTableLine(
- bool bSerialized,
- QString strName,
- QString strFullName,
- QString strType,
- QString strValue,
- QString strComment
- );
- // 表格中添加新的一行(DB模式)
- int insertTableLine(
- QString strName,
- QString strFullName,
- QString strType,
- QString strValue,
- QString strCommAddress,
- VPEnum::GVL_ACCESS_MODE accessMode,
- QString strComment
- );
- //// 添加全局变量(界面录入方式)
- //void addGlobalVariable(
- // bool bSerialized,
- // QString strName,
- // QString strType,
- // QString strValue,
- // QString strComment
- // );
- //// 添加全局变量(序列化方式)
- //void addGlobalVariable( const VARIABLE& newVar);
- //// 添加局部变量
- //void addLocalVariable(
- // bool bSerialized,
- // QString strName,
- // QString strType,
- // QString strValue,
- // QString strComment
- //);
- // 更新表格中指定变量的值
- void updateTableValue(const QString& strVarFullName, const QString& strNewValue);
- //// 将指定的表格设置为错误状态
- //void setItemError(int row, int col);
- //// 将指定的表格设置为正常状态
- //void setItemOK(int row, int col);
- //// Toolbar - New
- //void onToolNew();
- // Toolbar - MoveUp
- void onVariableMoveUp();
- // Toolbar - MoveDown
- void onVariableMoveDown();
- // Toolbar - Delete
- void onVariableDelete();
- // 交换两行的数据
- void swapRows(int selectRow, int targetRow);
- //// 设置分组名称
- //void setTitle(const QString& strTitle)
- //{
- // this->m_strTitle = strTitle;
- //}
- private slots:
- //// 当Type下拉框改变时
- //void onTableTypeChanged(int nIndex);
- // 当Serialized状态发生改变时
- void onTableSerializedChanged(bool bChecked);
- // 当表格单元改变时
- void onTableCellChanged(int row, int col);
- // 调整大小的消息中改变表格栏的宽度
- virtual void resizeEvent(QResizeEvent* event) override;
- private:
- Ui::WindowAppVariableTable ui;
- //private:
- //
- // // 表格中添加一行
- // void addNewLine(
- // bool bSerialized,
- // QString strName,
- // QString strType,
- // QString strValue,
- // QString strComment,
- // TOOL_TYPE varType
- // );
- private:
- // 用来保存表格中插入的控件及其对应的序号,否则获取不到
- QHash<QCheckBox*, int> m_cellCheckbox;
- // 上一次输入的Value值和Comment值(用于处理消息被重复多次触发)
- QVector<QString> m_LastValues;
- // 变量全名和表格行数的对应关系
- QHash<QString, int> m_VariablesRows;
- // 本Gvl分组的名称
- QString m_strGroup;
- // 本Gvl分组的模式(用于切换编辑和不可编辑,以及表格头目)
- GVL_MODE m_gvlMode;
- };
|