找回密码
 立即注册
收起左侧

Q_ENUM在C++和QML中的使用

3
回复
4194
查看
[复制链接]
累计签到:2 天
连续签到:1 天
来源: 2020-5-12 15:15:28 显示全部楼层 |阅读模式
1Qter豆
本帖最后由 vindroid 于 2020-5-12 15:16 编辑

TestBase.h
enum Test1 { A=0, B, C};

Out1.h
Q_OBJECT
Q_ENUM(Test1)
enum Test2 { D=3, E, F};
Q_ENUM(Test2)

test.qml
console.log(Out1.A); // output undefind
console.log(Out1.D); // output 3
要在qml中使用这个枚举Test1要怎么做?Out1已经设置了qmlRegisterType,输出Test2的值是正常的,Test1就不行

回复

使用道具 举报

累计签到:742 天
连续签到:1 天
2020-5-12 18:02:39 显示全部楼层
为什么 Test1 在 Out1.h 里面,而不是 Testbase.h 里面呢?有试过换过去嘛 ?
回复

使用道具 举报

累计签到:2 天
连续签到:1 天
2020-5-13 08:18:19 显示全部楼层
Since 发表于 2020-5-12 18:02
为什么 Test1 在 Out1.h 里面,而不是 Testbase.h 里面呢?有试过换过去嘛 ?

我把大部分enum都定义在了TestBase.h里面,TestBase只是个头文件,没有对应的cpp文件,所以没法qmlRegisterType然后在qml中使用

点评

可以看一下这个博客后面的总结,你这样写貌似是不行的 https://blog.csdn.net/lsylovezsl/article/details/90632195  详情 回复 发表于 2020-5-13 08:27
回复

使用道具 举报

累计签到:742 天
连续签到:1 天
2020-5-13 08:27:40 显示全部楼层
vindroid 发表于 2020-5-13 08:18
我把大部分enum都定义在了TestBase.h里面,TestBase只是个头文件,没有对应的cpp文件,所以没法qmlRegist ...

可以看一下这个博客后面的总结,你这样写貌似是不行的
https://woboq.com/blog/q_enum.html
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了