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

2.qml使用c++

目录

  • 1.概述
  • 2.注册方式
  • 3. 分类
    • ①枚举类
    • ②工具类
    • ③数据类
    • ④资源类
    • ②视图类

1.概述

qml是用来干嘛的?
当然是提高UI开发效率的
为什么要混合C++?
因为qml无法处理密集型数据逻辑
而加入c++则兼顾了性能
达到1+1>2

总结就是 qml 开发UI, C++ 实现逻辑
而js的用在简单的逻辑与接合c++与qml

2.注册方式

清楚了qml的使用,那么就意味着我们要开始着手逻辑
而qml 引入c++的方式则是通过将注册c++到qml中进行使用
注册方式就有以下几种:
在这里插入图片描述
常用如下

1.qmlRegisterModule() 
注册类型前,先显示声明模块存在,否则通过类型的方式注册模块的话是隐式声明的
2.qmlRegisterType()
基本上这个就是正常的类型,没有什么限制,可以实例化
3.qmlRegisterUncreatableType()
如果希望对象只由C++创建则使用这个
4.qmlRegisterUncreatableMetaObject()
一般用于注册工具类或者专门提供枚举的枚举类
5.qmlRegisterInterface()
一般注册接口类, 用于容纳多态对象
6.qmlRegisterSingletonInstance()
注册单例模式

3. 分类

我们将qml使用c++的东西分类成以下几种

①枚举类

一般专门管理枚举的类

②工具类

一般就是提供静态方法的类

③数据类

派生于QObject ,专门提供给qml数据
用于作为一个数据类型,状态机,接口提供;

④资源类

qml提供了资源接口类QuickImageProvider
派生与QuickImageProvider的类,可以给qml中Image组件提供图像资源的路径,当然这个提供的静态图像资源
应用途径就有动态二维码,验证码等等

②视图类

用于渲染视图的类,也就是组件类
组件类有哪些呢? 就是派生于QQuickItem 与 QQuickPaintedItem 的类
将他们注册到qml 中就是qml的组件了

相关文章:

  • [NOIP 2001 普及组] 数的计算 Java
  • DFS:从入门到进阶的刷题指南
  • YOLOv8 实战指南:如何实现视频区域内的目标统计与计数
  • database disk image is malformed 的解决方法
  • 第十三章:预处理
  • JavaScript es6 语法 map().filter() 链式调用,语法解析 和常见demo
  • 2025年数字经济与绿色金融国际会议:智能金融与可持续发展的创新之路
  • C++容器进阶:深入解析unordered_map与unordered_set的前世今生
  • 《智能医学》征稿通知:7天可见刊,专科及以上可发表
  • 极坐标系下的极径 r 表示点到原点的距离 大于等于0
  • 实测,大模型谁更懂数据可视化?
  • 十二、FTP服务器配置与应用
  • LeetCode Hot100(矩阵)
  • ADB安装及使用
  • Ubuntu系统下Docker部署Dify保姆级教程:实现内网穿透远程访问
  • PostgreSQL 备份与恢复策略
  • 架构意识与性能智慧的双重修炼
  • Pytorch的梯度控制
  • Pinia Plungin Persistedstate
  • 长春CCPC邀请赛
  • 做头像一个字的网站/世界新闻最新消息
  • 罗庄区建设局网站/今日刚刚发生新闻事件
  • 阿里云的网站建设好不好/推广策略怎么写
  • 高质量的南京网站建设/seo学习
  • 南通网站搜索引擎优化/视频互联网推广选择隐迅推
  • 吉林省长春市长春网站建设哪家好/优化大师