variantmanager.h 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. 
  2. #ifndef VARIANTMANAGER_H
  3. #define VARIANTMANAGER_H
  4. #include "Common.h"
  5. #include "qtvariantproperty.h"
  6. #include "qttreepropertybrowser.h"
  7. /// <summary>
  8. /// 扩展VariantManager类,增加自定义的属性处理
  9. /// </summary>
  10. class VariantManager : public QtVariantPropertyManager
  11. {
  12. Q_OBJECT
  13. public:
  14. explicit VariantManager(QObject *parent = Q_NULLPTR);
  15. ~VariantManager();
  16. virtual QVariant value(const QtProperty *property) const;
  17. virtual int valueType(int propertyType) const;
  18. virtual bool isPropertyTypeSupported(int propertyType) const;
  19. virtual QStringList attributes(int propertyType) const;
  20. virtual int attributeType(int propertyType, const QString &attribute) const;
  21. virtual QVariant attributeValue(const QtProperty *property, const QString &attribute) const;
  22. static int tagDataLinkTypeId();
  23. static int tagTableExInfoTypeId();
  24. void setPropertyEditor(QtTreePropertyBrowser *editor);
  25. QtTreePropertyBrowser *getPropertyEditor();
  26. public slots:
  27. virtual void setValue(QtProperty *property, const QVariant &val);
  28. virtual void setAttribute(QtProperty *property,
  29. const QString &attribute, const QVariant &value);
  30. protected:
  31. virtual QString valueText(const QtProperty *property) const;
  32. virtual void initializeProperty(QtProperty *property);
  33. virtual void uninitializeProperty(QtProperty *property);
  34. private:
  35. QtTreePropertyBrowser *propertyEditor_ = Q_NULLPTR;
  36. private:
  37. struct Data {
  38. QString value;
  39. QString attribute;
  40. };
  41. QMap<const QtProperty *, Data> theValues;
  42. };
  43. #endif