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类型。

例如,标准的DateArray类型如下所示可用

有关更多详细信息,请参阅QML文档中的JavaScript表达式