【问题标题】:How to make QtDesigner offer Enumeration for Plugin Property如何让 QtDesigner 为插件属性提供枚举
【发布时间】:2020-05-22 21:35:01
【问题描述】:

我正在尝试根据https://doc.qt.io/qt-5/designer-creating-custom-widgets.html 的指南将我的 Qt Ui 小部件部署为 Qt Designer 插件

但是,我似乎不知道如何让 QtDesigner 在枚举属性的属性编辑器中向用户呈现下拉菜单。

非常感谢任何建议!

【问题讨论】:

    标签: qt


    【解决方案1】:

    回答我自己的问题:

    1) 将枚举放在班级的“public:”之后,然后立即使用 Q_ENUM 宏

        class myEnumContainingClass {
          Q_OBJECT
          Q_PROPERTY(FOO my_property READ getMyEnumProperty WRITE setMyEnumProperty DESIGNABLE true)
        public:
          enum FOO {
            BAR
          };
          Q_ENUM(FOO)
          explicit MyEnumContainingClass();
          ...
    

    2) 像这样在插件的 domXml() 部分中只使用枚举的键,而不是整个 enum::string

        <property name="theEnumHoldingProperty">
          <enum>BAR</enum>
        </property>
    

    虽然我仍然希望整个 enum::string 出现在 Qt Designer 的下拉菜单中以保持一致性,但至少它是这样工作的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-16
      • 2020-12-31
      • 2016-02-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多