繁体   English   中英

信号中的Qt枚举需要qRegisterMetaType

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM