Q_ENUMS with BOOST_SCOPED_ENUM
Q_ENUMS with BOOST_SCOPED_ENUM
我正在研究一个项目,该项目具有与BOOST_SCOPED_ENUM
的枚举定义,如:
BOOST_SCOPED_ENUM_START(myEnum)
{
A = 0,
B
};
BOOST_SCOPED_ENUM_END;
现在我想使用Q_ENUMS
在QT中注册此enum并定义Q_PROPERTY
,如:
Q_ENUMS(myEnum)
Q_PROPERTY(myEnum myEnumVar READ getMyEnumVar WRITE setMyEnumVar)
这是不工作,我尝试在Q_ENUMS
和Q_PROPERTY
定义上添加BOOST_SCOPED_ENUM()
宏,但它也没有帮助。
用Q_ENUMS
BOOST_SCOPED_ENUM
枚举的正确方法是什么?宏BOOST_SCOPED_ENUM_*
只是声明struct:
# define BOOST_SCOPED_ENUM_START(name) struct name { enum enum_t
# define BOOST_SCOPED_ENUM_END };
# define BOOST_SCOPED_ENUM(name) name::enum_t
所以你的enum实际上是name::enum_t
。此外,qt文档还说明了Q_ENUMS
:
如果要注册在另一个类中声明的enum,则使用Enum必须使用定义它的类的名称进行完全限定。此外,定义枚举的类必须继承QObject as以及使用Q_ENUMS()声明枚举。
我认为这是不可能使用BOOST_SCOPED_ENUM_*
与Q_ENUMS
,因为它产生的结构,不继承QObject
。
相关文章:
- enum是C++中的宏变量还是整数变量
- 是否可以从int转换为enum类类型
- 在一个模板函数中,若输入的类型是enum类,我该如何使用std::underlying_type
- 在C++中,将int值赋给enum,反之亦然
- 两个 COM 组件中 ENUM 的重复条目
- 类继承,ENUM 与 AST 类实现的问题
- C++关于ENUM的问题。我得到的响应比枚举列表大
- sizeof(enum) 可以不同于 sizeof(std::underlying_type<Enum>::
- 如何理解c++中在命名空间内部定义的枚举类型enum
- 如何将set和enum一起使用
- 如何限制从int到enum类的转换
- 编译为 cuda 内核调用提供了"expression must have integral or unscoped enum type"
- Access C++ Enum from Swift
- 密钥错误: "Couldn't find enum caffe.EmitConstraint.EmitType"
- 叮当警告"-Wsigned-enum-bitfield"的含义
- 使用 enum 参数将 C++ 对象信号连接到 QML 信号处理程序
- 在类中使用"enum"时出错
- 有什么方法可以从C 中的Enum类获取随机
- 使用ENUM输入和退出菜单,然后切换SFML
- Class-scoped enum