主页 > 电脑硬件  > 

在QML中注册C++类型

在QML中注册C++类型

在Qt6以后不在推荐使用qmlRegisterType注册C++类,但是如果在Cmake项目中不使用qt_add_qml_module,这种方法还可以使用。

在Qt6以后的版本,注册C++类型到QML中需要一下几种方式

1.基于 QML_ELEMENT 在继承自QObject的类中,需要生命Q_OBJECT,在该宏下面可以直接声明 QML_ELEMENT 宏,将该C++类注册到QML中; 需要注册到QML中的C++类,头文件需要有 #include “QtQml/qqmlregistration.h” 2. 基于 QML_NAMED_ELEMENT(name) 宏,给该C++类自定义类名注册到QML中,使用方法和QML_ELEMENT一样。 注:在QMake、CMake工程中对于导入C++到QML的配置不同。

3.注册对象类型到QML中

3.1 QML_ANONYMOUS宏:注册不可实例化,且无法从QML引用的 C++类型,即无法在QML中创建、使用该C++类型声明属性。

3.2QML_INTERFACE宏:注册Qt接口类型,该类型不能从QML实例化。

3.3QML_UNCREATABLE宏:注册一个命名的C++类,该类型不可实例化,但可以被QML系统识别。 该宏必须和QML_ELEMENT或者 QML_NAMED_ELEMENT结合使用 3.4QML_SINGLETON 注册单例类型, 该宏必须和QML_ELEMENT或者 QML_NAMED_ELEMENT结合使用

注册单例类型 单例允许QML使用 namespace::属性或者 namespace::信号 或者namespace::函数 ,访问C++类的属性或者信号、函数

标签:

在QML中注册C++类型由讯客互联电脑硬件栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“在QML中注册C++类型

上一篇
CMake学习

下一篇
JavaFunction的使用