QtQML系列 - QML插件

目录

系列文章目录

1.QML是什么?

2.引用文章or文档

3.插件示例

3.1官方示例 Creating C++ Plugins for QML

3.2  自定义Qt Quick 2 Extension Plugin 项目


系列文章目录

系列文章Read Me


前言

大型和复杂的软件系统中,插件是一种广泛应用的思想和模式。

总的来说,插件为软件开发者和用户提供了很多优势。他们提供了灵活性和可扩展性,使软件更加适应多种不同的应用场景。

下面介绍在QML中如何封装


1.QML是什么?

QML,全称为Qt Meta-Object Language,是一种用于创建用户界面的声明性编程语言。它是由Qt框架开发的、基于JavaScript语法的标记语言。

QML的特点是简洁、易于学习和使用,并且能够充分利用Qt框架的优势,如跨平台性、高性能、可扩展性和可定制性等。QML不需要编写大量的代码来创建和布局用户界面,而是通过声明式的方法来描述UI元素、交互和动画效果等。

QML可以与C++语言进行混合编程,以便在Qt应用程序中使用QML和C++的优势。使用QML和Qt Creator工具,开发人员可以轻松创建出现代化且高效的用户界面。

QML被广泛应用于Qt Quick技术中,Qt Quick是一个用于创建现代UI界面和动画的框架。QML和Qt Quick可以用于多种平台,如移动设备、桌面软件、嵌入式系统等。由于QML的易用性和灵活性,它已成为Qt框架的重要组成部分,为开发高质量的用户界面提供了强大的工具和支持。

(以上来自CSDN创作助手)

2.Qt和Qml怎么通讯

2.1官方文档

doc - Qt 5.15 中的 QML 类型注册

2.2 before 5.15

2.2.1 注册函数

到目前为止,在 QML 中使用 C++ 类型的常用方法是使用 qqml.h 标头中提供的注册函数:

  • qmlRegisterType()、
  • qmlRegisterSingletonType()、
  • qmlRegisterUncreatableType()

2.2.2 qmltypes声明文件

qmltypes 文件包含有关插件注册的类型的元信息,但只能用在开发qml extension plugin时。

当我们仍需要从主程序(C++)用2.2.1的方法注册类型时,还是需要用C++来指定类型。

综上,仍然存在一个冗余类型规范的问题。

2.2.3 qmlplugindump工具

该工具将以与 QML 引擎加载插件相同的方式加载您的插件。

它将提取有关其中包含的所有类型的信息,以生成 plugins.qmltypes 文件。

缺点:

  1. 会在您的插件中执行不相关的代码,
  2. 不支持跨平台、也不适用于交叉编译构建

2.3 from 5.15

5.15中重新设计了注册系统:

  1. 停止使用2.2.1中列举的注册函数类型
  2. qqml.h提供了一组可以添加到类声明中的宏,可以将类型标记为导出到 QML。 比如说“QML_ELEMENT”。
  3. 添加“CONFIG += qmltypes”来触发实际注册
  4. 这种 QML 的 C++ 类型静态注册不仅会为插件生成 qmltypes 文件,还会为您的主应用程序生成 qmltypes 文件

//2023/9/20 编辑

3.demo

3.1官方示例 Creating C++ Plugins for QML

Creating C++ Plugins for QML | Qt QML 5.15.15

3.2  自定义Qt Quick 2 Extension Plugin 项目

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值