#pragma once #include "Common.h" #include "VControlObject.h" // 扩展属性相关数量 // #define TABLE_PROPERTY_EX_MAINLINK_COUNT 1 //#define TABLE_PROPERTY_EX_SUBGROUPLINK_COUNT 1 //#define TABLE_PROPERTY_EX_GROUP_COUNT 1 // 扩展属性的组名 #define TABLE_PROPERTY_EX_NAME "表格" #define TABLE_PROPERTY_EX_REFRESHLINK_NAME "索引链接" #define TABLE_PROPERTY_EX_GROUP_NAME "列信息" #define TABLE_PROPERTY_EX_SUBGROUP_NAME "列" #define TABLE_PROPERTY_EX_VALUE_NAME "列名" #define TABLE_PROPERTY_EX_LINK_NAME "数据链接" // 列数和行数的属性名称 #define TABLE_COL_COUNT_NAME "colCount" #define TABLE_ROW_COUNT_NAME "rowCount" // Table属性子分组编号(Table目前只有一个扩展属性组) #define GROUP_INDEX_TABLE 0 class VTableControl : public QTableWidget, public VControlObject { Q_OBJECT Q_PROPERTY(QRect geometry READ geometry WRITE setGeometry) Q_PROPERTY(int rowCount READ getRowCount WRITE setRowCount); Q_PROPERTY(int colCount READ getColCount WRITE setColCount); //Q_PROPERTY(QFont font READ getFont WRITE setFont) //Q_PROPERTY(bool enable READ getEnable WRITE setEnable) // Q_PROPERTY(DataLink dataLink READ getDataLink WRITE setDataLink) public: VTableControl ( QWidget* parent, const QPoint& pos, const QSize& size, CONTROL_PROPERTY* pProperty = nullptr, CONTROL_PROPERTY_EX* pPropertyEx = nullptr ); ~VTableControl(); public: // 属性的实现函数 //void setText(const QString& title); //void setTip(const QString& tip); void setTextColor(const QColor& color); //void setBgColor(const QColor& color); void setFont(const QFont& font); void setEnable(const bool enable); // 函数 int getRowCount(); void setRowCount(const int row); // 列数 int getColCount(); void setColCount(const int row); // 初始化Table表头 void initTableHeader(); // 更新列标题 void updateColTitle(const QString& newValue, const int nIndex); // 刷新一整行数据 void updateRowFromVariables(const RUNTIME_SYNC_VARS& sync_vars, int nRowIndex); //// 更新数据链接 //void updatePropertyExDataLink(const QString& strPropertyName, const DataLink& datalink); //// 更新数据链接 //void updatePropertyExDataLink(const QString& strPropertyName, const QString& strLinkString); // 更新列属性数量(虚函数) virtual void updateExPropertyCount(const int fixCount, const QString& strPropName); // 修改扩展属性(虚函数) virtual void changeExProperties(QString strValueTitle, const QVariant& newValue); private: // 初始化扩展属性 void initPropertyEx(); // 初始化UI风格 void initStyle(); // 初始化子属性组 void initSubGroup(PROPERTY_EX_SUBGROUP& subGroup, int nIndex, int nSubGroupID); };