教大牛,我做了个自定义控件,继承自QDesignerCustomWidgetInterface的那种控件,实现这个类的一些方法,可以在Qt设计师里用,效果如图:
想对这个控件做一个可枚举的动态属性,效果就像图中选鼠标样式的这种,一点下拉出所有项,从中选一个的效果,而直接定义枚举后用的话,在Qt设计师里就认成了数值,不是字符串,我的做法是:
在插件类中是这样加的:
enum MyEnum {L = 1, M, R};
class WindPlate : public QWidget
{
Q_OBJECT
Q_PROPERTY(MyEnum m_myEnum READ getMyEnum WRITE setMyEnum)
Q_ENUMS(MyEnum)
public:
WindPlate(QWidget *parent = 0);
void setMyEnum(MyEnum e){ m_myEnum = e ; }
MyEnum getMyEnum(){return m_myEnum ; }
MyEnum m_myEnum;
};
在类的构造函数中加入:
setProperty("m_myEnum", 1);
setProperty("zhang", m_myEnum);
可是编译生很顺利,无语法错误,成DLL文件后,加入QT指定插件目录后,在Qt设计师中,还是把枚举值认成了数值,如下图:
那请教大神,要在Qt设计师中,右下角控件的属性区域中,加入下拉框出现枚举字符串的效果应该怎么实现?