C++注册公开的枚举类型到QML中

本文介绍了如何在Qt5.8及以上版本中使用QML注册不可创建的元对象,重点讲解了MyNamespace枚举的定义、Q_NAMESPACE的使用以及qmlRegisterUncreatableMetaObject函数的应用。务必注意首字母大写和元对象注册细节。
摘要由CSDN通过智能技术生成
namespace MyNamespace {
   Q_NAMESPACE
   enum MyEnum {
       Key1,
       Key2,
   };
   Q_ENUMS(MyEnum)
 }

 //...
 qmlRegisterUncreatableMetaObject(MyNamespace::staticMetaObject, "io.qt", 1, 0, "MyNamespace", "Access to enums & flags only");
//On the QML side, you can now use the registered enums:
 Component.onCompleted: console.log(MyNamespace.Key2)
//This function was introduced in Qt 5.8.

注意事项
1.qt 5.8版本以上(参考其它贴)
2.MyEnums 第一个字母一定要大写,包括枚举中的变量(参考其它贴)

3.qmlRegisterUncreatableMetaObject最后一个参数不可以省略

4.Q_NAMESPACE应该是要在需要使用的枚举定义之前

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

飞翔的小七

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值