QML术语表#

QML和Qt Quick文档中使用的术语表

常用术语#

术语

定义

QML

QML应用程序所使用的语言。该语言架构和引擎由Qt QML模块实现。

Qt Quick

QML语言的类型和功能的标准库,由Qt Quick模块提供,可通过“导入QtQuick”访问。

类型

在QML中,“类型”可能指代值类型或QML对象类型。

QML语言提供了一些内置值类型,Qt Quick模块提供了各种Qt Quick类型用于构建QML应用程序。第三方开发者可以通过(模块)或应用程序开发者在应用程序本身通过QML文档提供类型。

有关更多详细信息,请参阅QML类型系统。

值类型

值类型是像intstringbool这样的简单类型。与对象类型不同,不能从值类型实例化对象;例如,无法创建具有属性、方法、信号等的int对象。

值类型以及对象类型通常属于QML模块。您必须导入模块才能使用它们。一些类型是内置于语言的,例如int、bool、double、string,但还包括QtObject和Component。

有关更多详细信息,请参阅QML类型系统。

对象类型

QML对象类型是可以由QML引擎实例化的类型。

一个QML类型可以是始于大写字母的.qml文件中的文档或者基于QObject的C++类的定义。

有关更多详细信息,请参阅QML类型系统。

对象

QML对象是QML对象类型的实例。

这些对象在引擎处理对象声明时创建,对象声明指定了要创建的对象和为每个对象定义的属性。

此外,对象还可以通过Component.createObject()和Qt.createQmlObject()在运行时动态创建。

另请参阅惰性实例化

组件

组件是一个模板,可以从中创建QML对象或对象树。它是当QML引擎加载文档时产生的。加载后,它可以用来实例化它所代表的对象或对象树。

此外,Component类型是一种特殊类型,可以在文档内声明一个组件。组件对象也可以通过Qt.createComponent()动态创建,以动态创建QML对象。

文档

QML文档是一个包含单一流水线对象声明的自包含的QML源代码片段,开始于一个或多个导入语句。文档可以驻留在.qml文件或文本字符串中。

如果它放入以大写字母开头的.qml文件中,该文件被引擎识别为QML类型的定义。顶层对象声明封装了将被类型实例化的对象树。

属性

属性是对象类型的一个特性,它具有一个名称和相关的值;此值可以从外部进行读取(在大多数情况下,也可以写入)。

对象可以有一个或多个属性。一些属性与画布(例如,x、y、宽度、高度和不透明度)相关联,而其他属性可能属于特定类型的数据(例如,Text类型的“文本”属性)。

有关更多详细信息,请参阅QML对象属性。

绑定

绑定是一个与属性“绑定”的JavaScript表达式。在任何给定时间点的属性值将是评估该表达式返回的值。

有关更多详细信息,请参阅属性绑定。

信号

信号是来自QML对象的通告。当对象发出信号时,其他对象可以通过信号处理器接收和处理此信号。

大多数QML对象的属性都有更改信号,还有一个相关联的更改信号处理器,它可以由客户端定义以实现功能。例如,MouseArea类型的实例的“onClicked()”处理器可能被定义在应用程序中以播放声音。

有关更多详细信息,请参阅信号和处理器事件系统。

信号处理器

信号处理器是由信号触发的表达式(或函数)。它也称为C++中的“槽”。

有关更多详细信息,请参阅信号和处理器事件系统。

延迟实例化

对象实例可以在运行时“延迟实例化”,以避免在需要之前执行不必要的操作。Qt Quick提供了Loader类型,以便使延迟实例化更加方便。