QML 类型系统
QML 文档中定义对象层次结构时可能使用的类型有多种来源。它们可能是
- 由 QML 语言本地提供
- QML 模块通过 C++ 注册
- 由 QML 模块作为 QML 文档提供
此外,应用程序开发人员可以提供自己的类型,可以直接注册 C++ 类型,也可以在 QML 文档中定义可重用的组件,然后导入这些组件。
无论类型定义来自哪里,引擎都会对这些类型的属性和实例执行类型安全。
QML 值类型
QML 语言内置支持各种原始类型,包括整数、双精度浮点数、字符串和布尔值。对象可以有这些类型的属性,这些类型的值可以作为参数传递给对象的方法。
有关值类型的更多信息,请参阅QML 值类型(Value Types)文档。
QML 对象类型
QML 对象类型(object type)是一种可以实例化 QML 对象的类型。QML 对象类型从QtObject 派生,由 QML 模块提供。应用程序可以导入这些模块,使用它们提供的对象类型。QtQuick
模块提供了在 QML 中创建用户界面所需的最常用对象类型。
最后,每个 QML 文档都隐式定义了一个 QML 对象类型,可以在其他 QML 文档中重复使用。有关对象类型的深入信息,请参阅QML 类型系统中有关对象类型的文档。
QML 序列类型
序列类型可用于存储值或对象的序列。
有关序列类型的详细信息,请参阅QML 类型系统中有关序列类型的文档。
枚举
在 QML 中,枚举被视为类型的特殊属性。
有关枚举的深入信息,请参阅QML Enumerations文档。
QML 命名空间
QML 命名空间(QML Namespaces)可用于从 C++ 命名空间公开枚举。
有关命名空间的深入信息,请参阅QML 类型系统中的命名空间文档。
JavaScript 类型
QML 引擎支持 JavaScript 对象和数组。任何标准 JavaScript 类型都可使用通用var 类型创建和存储。
例如,可使用标准的Date
和Array
类型,如下所示:
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.