前言
QML旨在通过C ++代码轻松扩展。因此Qt QML模块中的类使QML对象能够从C ++加载和操作,而QML引擎与Qt 元对象系统集成的本质使得C ++函数可以直接从QML调用。这允许我们使用QML、C++以及JavaScript语言开发混合应用程序。
QML和C++结合开发,实现了如下功能:
- 前后端分离,使用QML 和 JavaScript开发用户交互页面,使用C++处理后台逻辑;
- 从QML中调用C++函数,比如程序逻辑,C++实现的数据模型或者一些第三方C++库中的函数;
- 访问Qt QML或者Qt Quick C++的API,比如使用
QQuickImageProvider
动态生成图片; - 从C ++中实现您自己的QML对象类型 --无论是在您自己的特定应用程序中使用,还是分发给其他人;
向QML提供C++数据
要为QML提供C++数据或者函数,必须使C++类继承自QObject。由于QML引擎与元对象系统的集成,任何QObject派生类的属性,方法和信号都可以从QML访问,如将QML 与 C++交互 - 02 QML访问C++对象的属性与函数中所述。一旦这样的类提供了所需的功能,它就可以通过各种方式暴露给QML。
- 该类可以