QML术语表#
QML和Qt Quick文档中使用的术语表
常用术语#
术语
定义
QML
QML应用程序所使用的语言。该语言架构和引擎由Qt QML模块实现。
Qt Quick
QML语言的类型和功能的标准库,由Qt Quick模块提供,可通过“导入QtQuick”访问。
类型
在QML中,“类型”可能指代值类型或QML对象类型。
QML语言提供了一些内置值类型,Qt Quick模块提供了各种Qt Quick类型用于构建QML应用程序。第三方开发者可以通过(模块)或应用程序开发者在应用程序本身通过QML文档提供类型。
有关更多详细信息,请参阅QML类型系统。
值类型
值类型是像
int
、string
和bool
这样的简单类型。与对象类型不同,不能从值类型实例化对象;例如,无法创建具有属性、方法、信号等的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类型,以便使延迟实例化更加方便。