![](/img/trans.png)
[英]Problems in connect signal/slot, qRegisterMetaType() QList<QString>
[英]Qt enum in signal requires qRegisterMetaType
我在基于QObject
的类中有一个枚举和一个属性,例如:
Q_ENUMS(StateEnum)
Q_PROPERTY(StateEnum state READ state NOTIFY stateChanged)
当我尝试emit stateChanged(state)
,出现错误:
QObject::connect: Cannot queue arguments of type 'StateEnum'
(Make sure 'StateEnum' is registered using qRegisterMetaType().)
为什么需要调用qRegisterMetaType
? 我认为这就是Q_ENUMS
所做的。
您正在寻找Q_ENUM()
宏 。 这将替换现在不推荐使用的Q_ENUMS
,并将自动注册该元类型。
您的代码应如下所示:
Q_ENUM(StateEnum) //note the missing 'S' here
Q_PROPERTY(StateEnum state READ state NOTIFY stateChanged)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.