QML 类型系统
可用于在 QML 文档中定义对象层次结构的类型可以来自各种来源。它们可以是
- 由 QML 语言原生提供
- 通过 QML 模块使用 C++ 注册
- 由 QML 模块作为 QML 文档提供
此外,应用开发者可以通过直接注册 C++ 类型或定义可重用组件在 QML 文档中提供自己的类型,然后导入这些组件。
无论类型定义来自何方,引擎都将强制执行属性和这些类型的实例的类型安全性。
QML 值类型
QML 语言内置了对各种原始类型(包括整数、双精度浮点数、字符串和布尔值)的支持。对象可以具有这些类型的属性,并且可以传递这些类型的值作为对象方法的参数。
请参阅有关QML 值类型的文档以获取有关值类型更多信息。
QML 对象类型
QML 对象类型是可以从中实例化 QML 对象的类型。QML 对象类型由QtObject派生,并由 QML 模块提供。应用可以导入这些模块使用它们提供的对象类型。`QtQuick` 模块提供了在 QML 中创建用户界面所需的最常见对象类型。
最后,每个 QML 文档隐式定义了一个 QML 对象类型,该类型可以在其他 QML 文档中使用。有关 QML 类型系统中的对象类型的详细信息,请参阅相关文档。
QML 列表类型
列表类型可用于存储值或对象的序列。
请参阅有关QML 类型系统中的列表类型的文档以获取更多详细信息。
QML 命名空间
QML 命名空间可用于公开来自 C++ 命名空间的枚举。
请参阅有关QML 类型系统中的命名空间的文档以获取更多详细信息。
JavaScript 类型
QML 引擎支持 JavaScript 对象和数组。可以使用泛型 var 类型创建和存储任何标准 JavaScript 类型。
例如,以下可以提供标准 Date
和 Array
类型:
import QtQuick Item { property var theArray: [] property var theDate: new Date() Component.onCompleted: { for (var i = 0; i < 10; i++) theArray.push("Item " + i) console.log("There are", theArray.length, "items in the array") console.log("The time is", theDate.toUTCString()) } }
有关 QML 文档中的JavaScript 表达式的更多详情。
© 2024 Qt公司有限公司。本文档中包含的文档贡献是各自所有者的版权。提供的文档是根据自由软件基金会发布的、受GNU自由文档许可版1.3条款许可的。Qt及其相应商标是Qt公司在芬兰以及世界其他国家的商标。商标归各自所有者所有。