【发布时间】:2020-05-22 21:35:01
【问题描述】:
我正在尝试根据https://doc.qt.io/qt-5/designer-creating-custom-widgets.html 的指南将我的 Qt Ui 小部件部署为 Qt Designer 插件
但是,我似乎不知道如何让 QtDesigner 在枚举属性的属性编辑器中向用户呈现下拉菜单。
非常感谢任何建议!
【问题讨论】:
标签: qt
我正在尝试根据https://doc.qt.io/qt-5/designer-creating-custom-widgets.html 的指南将我的 Qt Ui 小部件部署为 Qt Designer 插件
但是,我似乎不知道如何让 QtDesigner 在枚举属性的属性编辑器中向用户呈现下拉菜单。
非常感谢任何建议!
【问题讨论】:
标签: qt
回答我自己的问题:
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 的下拉菜单中以保持一致性,但至少它是这样工作的。
【讨论】: