c++ - Q_ENUM 和 Q_ENUMS 有什么区别

标签 c++ qt5 qmetatype

我刚刚发现多个示例显示了 Q_ENUMQ_ENUMS 的用法,并且查看 Q_ENUM 的定义告诉我它包括 Q_ENUMS 等定义。

Q_PROPERTY、Qml/QtQuick、信号/槽、QVariants 和qDebug() 输出中使用枚举时,我不确定要写哪一个。

似乎 Q_ENUM 更好,因为它是使用 Q_ENUMS 定义的,但我只是猜测。

到底有什么区别,为什么有两个,应该首选哪个?

最佳答案

What's New in Qt 5.5说:

Added Q_ENUM to replace Q_ENUMS, which allows to get a QMetaEnum at compile time using QMetaEnum::fromType. Such enums are now automatically registered as metatypes, and can be converted to strings within QVariant, or printed as string by qDebug().

关于c++ - Q_ENUM 和 Q_ENUMS 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46691227/

相关文章:

qt - 如何在 Qt5 中获取系统 QFileDialog?

c++ - std::string 和 QVariant 之间的转换(反之亦然) Qt5

Qt 5 为 XCB 使用 EGL 后端

c++ - 从元对象获取属性更改通知器

c++ - 为什么没有 qRegisterMetaType q_enum 无法获得正确的类型值?

c++ - 通过 DLL 在 x64 上进行内联汇编

c++ - 错误的深度缓冲区(到纹理)输出?

c++ - .begin 左边必须有类/结构/union

c++ - 在 Qt 中注册自定义 MetaType 的别名类型

c++ - DLL注入(inject)。带参数执行CreateRemoteThread