QML类型系统#
对QML类型系统的描述
QML文档中对象层次结构定义可能使用的类型可以来自各种来源。它们可以是
由QML语言原生提供
通过QML模块由C++注册
由QML模块提供为QML文档
此外,应用程序开发者可以通过直接注册C++类型或定义可在QML文档中导入的可重用组件来提供自己的类型。
无论类型定义来自何处,引擎都将强制执行这些类型的属性和实例的类型安全性。
QML值类型#
QML语言内置了对各种原始类型(包括整数、双精度浮点数、字符串和布尔值)的支持。对象可以具有这些类型的属性,并且可以将这些类型的值作为对象的方法的参数传递。
有关值类型的更多信息,请参阅QML值类型文档。
QML对象类型#
QML对象类型是可以从中实例化QML对象的类型。QML对象类型派生自QtObject,并由QML模块提供。应用程序可以导入这些模块来使用它们提供的对象类型。《code class="docutils literal notranslate">QtQuick 模块提供了创建QML用户界面所需的最常见对象类型。
最后,每个QML文档隐式定义了QML对象类型,该类型可以在其他QML文档中重用。有关对象类型的详细信息,请参阅QML类型系统中的对象类型的相关文档。
QML序列类型#
序列类型可以用来存储值的序列或对象。
有关序列类型的详细信息,请参阅QML类型系统中的序列类型的相关文档。
QML命名空间#
QML命名空间可以用来自暴露C++命名空间中的枚举。
有关命名空间的详细信息,请参阅QML类型系统中的命名空间的相关文档。
JavaScript类型#
QML引擎支持JavaScript对象和数组。可以使用通用var类型创建和存储任何标准JavaScript类型。
例如,标准的Date
和Array
类型如下所示可用
有关更多详细信息,请参阅QML文档中的JavaScript表达式。