123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- #pragma once
- #include "Common.h"
- /// <summary>
- /// 本类是用于在 VariantFactory 类中用于关联自定义属性对话框的类
- /// 工作原理:
- /// 1. 首先自定义属性类型,例如 TagDataLinkPropertyType ,将其注册到控件的自定义属性中
- /// 2. 在 VariantManager 中关联此自定义属性
- /// 3. 在界面中需要编辑此属性时,会触发自定义的 VariantFactory::createEditor 虚函数
- /// 4. 在此虚函数中创建此 Edit,大体的用途就是作为自定义属性编辑对话框和VariantManager之间的桥梁
- /// 一方面显示自定义属性对话框,一方面把编辑的数据通过VariantManager传递到objectcontroller中进行界面显示
- /// </summary>
- class VControlObject;
- class PropertyDataLinkEdit : public QWidget
- {
- Q_OBJECT
- public:
- PropertyDataLinkEdit(
- QWidget *parent,
- const QString& strPropertyName
- );
- ~PropertyDataLinkEdit();
- DataLink getValue() const;
- //// 保存绑定控件类型名字,用于根据不同类型的控件显示不同的属性对话框数据
- //void setControlClass(const QString& className);
- //// 保存绑定控件的指针
- //void setControlPtr(QObject* pControlObject);
- signals:
- void dataLinkChanged(const QString& szVal);
- public slots:
- // 设置属性对话框的初始值
- void setValue(const QString& datalinkString);
- // 点击...后弹出属性设置对话框
- void buttonClicked();
- private:
-
- // 本控件关联的ControlObject
- VControlObject* m_pControlObject;
- // Edit控件
- QLineEdit* m_editInput;
- // 关联的DataLink信息
- DataLink m_DataLink;
- // 属性名称
- QString m_strPropertyName;
- // QString m_ClassName;
- // VALUE_TYPE m_ControlType;
- //// 类型名字和VALUE_TYPE类型枚举对应关系(主要针对控件类型)
- //QMap<QString, VALUE_TYPE> m_ControlTypeNames;
- };
|