Qt QML

Qt QML 模块为开发应用程序和库提供框架,采用 QML 语言 。它定义并实现语言和引擎基础设施,还提供使应用程序开发人员能够采用自定义类型扩展 QML 语言和采用 JavaScript C++ 集成 QML 代码的 API。Qt QML 模块提供 QML API C++ API .

注意,虽然 Qt QML 模块为 QML 应用程序提供了语言和基础设施,但 Qt Quick 模块为构建用户界面提供了更多视觉组件、模型 视图支持、动画框架、等。

对于 QML 和 Qt Quick 的新手而言,请参阅 QML 应用程序 了解编写 QML 应用程序的介绍。

使用模块

QML API

Qt QML 中的 QML 类型是可用的,透过 QtQml 导入。要使用类型,添加以下 import 语句到 .qml 文件:

import QtQml
							

C++ API

使用 C++ API 要求直接或透过其它依赖链接到模块库。一些构建工具对此提供专用支持,包括 CMake 和 qmake。

构建采用 CMake

使用 find_package() 命令以在 Qt6 包中定位所需的模块组件:

find_package(Qt6 COMPONENTS Qml REQUIRED)
target_link_libraries(mytarget PRIVATE Qt6::Qml)
							

另请参阅 构建采用 CMake 概述。

采用 qmake 构建

要配置采用 qmake 构建模块,把模块作为 Qt 变量的值添加到工程 .pro 文件中:

QT += qml
							

QML 和 QML 类型

Qt QML 模块包含 QML 框架和用于应用程序的重要 QML 类型。QML 构造的描述在 QML 参考 .

除了 QML 基本类型 ,模块带有以下 QML 对象类型:

Qt 全局对象为各种 QML 类型提供有用枚举和函数。

列表和模型

从 Qt 5.1 起,模型类型被移动到子模块 QtQml.Models Qt QML Models 页面有更多信息。

QML 应用程序 JavaScript 环境

JavaScript 表达式允许 QML 代码包含应用程序逻辑。Qt QML 提供在 QML 和从 C++ 运行 JavaScript 表达式的框架。

这些章节来自 QML 参考 .

C++ 应用程序集成 QML

模块还提供运行 QML 应用程序的框架。QML 框架允许 QML 代码包含 JavaScript 表达式并允许 QML 代码与 C++ 代码进行交互。

许可和归属

Qt QML 在商业许可下是可用的来自 Qt 公司 。此外,它在自由软件许可下是可用的。从 Qt 5.4 起,这些自由软件许可是 GNU LGPL (次一般公共许可) 第 3 版 ,或 GNU GPL (一般公共许可) 第 2 版 。见 Qt 许可 进一步了解细节。

Furthermore Qt QML in Qt 6.1.1 may contain third party modules under following permissive licenses:

JavaScriptCore 宏汇编程序

BSD 2 条款简化许可

指南和其它信息

用于编写 QML 应用程序的进一步信息:

参考