当前位置: 首页 > article >正文

在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++类的属性或者信号、函数


http://www.kler.cn/a/569015.html

相关文章:

  • 通过logback日志简单实现链路追踪
  • 总结前端常用数据结构 之 队列篇【JavaScript 】
  • yolov8,yolo11,yolo12 服务器训练到部署全流程 笔记
  • hive 面试题
  • Linux 检测内存泄漏方法总结
  • 【漫话机器学习系列】113.逻辑回归(Logistic Regression) VS 线性回归(Linear Regression)
  • JPA属性转换器的使用与实例解析
  • 3-5 WPS JS宏 工作表的移动与复制学习笔记
  • Vue3生命周期以及与Vue2的区别
  • 面试基础--JVM垃圾回收深度剖析(JDK8)
  • 北斗模块在无人机领域的革新应用与未来展望
  • 第一节:基于Winform框架的串口助手小项目---基础控件使用《C#编程》
  • MIT何恺明再次突破传统:分形递归架构引爆生成模型新纪元!
  • VirtualVM:Java 监控工具使用指南
  • LeetCode 72 - 编辑距离 (Edit Distance)
  • CSS 系列之:基础知识
  • ASP.NET 解决 NLog、log4net 和 Serilog 在 IIS 部署后不写日志的问题
  • [数据结构]树的概念及结构
  • 20250302让chrome打开刚关闭的网页
  • 计算机网络:Socket网络编程 Udp与Tcp协议 第一弹