Qt官方课程翻译——Glossary Of QML Terms

Qt官方教程翻译——Glossary Of QML Terms

附网址:http://qt-project.org/doc/qt-5/qml-glossary.html


Glossary Of QML Terms —— QML各术语词汇表


Common Terms —— 通用术语

术语

定义


QML

编写QML应用程序所使用的语言,由Qt QML组件实现语言架构和引擎。


Qt Quick

QML语言的标准类型与功能库,由Qt Quick组件提供,并通过"importQtQuick 2.0"来使用。


Type 

在QML中,一个type有可能是一种Basic Type也可能是一个QML Object Type

QML语言提供了大量基本类型,且Qt Quick组件也提供了各种Qt Quick types类型用来构建QML应用程序。

QML Documents介绍了应用程序开发者如何可以使用第三方开发者提供的模块(modules)。

前往The QML Type System查看更多细节。


Basic Type 

basic type是类似int,string,bool等简单类型。与object types不同,我们不能从基本类型初始化一个对象。

例如,我们不可能创建一个带有属性,方法,信号等的一个 int 对象。

基本类型被内置在QML语言中,而对象类型只有相应组件被引入后才能使用。

前往The QML Type System查看更多细节。 


Object Type

一个QML Object Type是可以通过QML引擎实例化的类型。

QML类型可以被定义在一个文件中:一个首字母大写的.qml文件,或是基于QObject的C++类。

前往The QML Type System查看更多细节。


Object

QML对象是QML Object Type的一个实例。

这些对象将在object declarations期间由引擎创建,它指定要创建的对象,以及必须为每个对象定义的属性。

另外,对象也可以通过 Component.CreateObject() 和 Qt.createQmlObject()在运行期被动态创建。

参见Lazy Instantiation


Component

组件实际上是QML对象或对象树创建的一个模板。它在QML引擎加载该文件时生成。

一旦它被加载,它可以被用来实例化它所代表的对象或对象树。

另外,Component类型也是一个很特别的类型,它可以被用来声明一个内联文档中的组件,

此外它也可以通过 Component.CreateObject() 和 Qt.createQmlObject()动态创建QML对象。


Document

QML Document包含QML源码块,它从一个或多个import语句开始,并包含一个单一的*对象声明。

QML文档可能被放置在.qml文件或一个文本字符串中。

如果它被放置在一个.qml文件中,该文件应该以大写字母开头,

该文件将作为引擎所能够识别的QML类型,*对象声明封装的的对象树将作为类型被实例化。


Property

property是对象的属性,它拥有一个名字和一个可关联的值。

这个值可以被外部读取(大多数情况下也可被写入)。一个对象可以包含一个或多个属性。

有些属性与画布相关(比如x,y,width,height,和opacity),

而另一些则专属某个类型(比如Text类型的"text"属性)。

前往QML Object Attributes查看更多细节。


Binding

binding是一个JavaScript表达式,用来“绑定”一个属性。

在任何时间该属性值的改变都将通过表达式计算返回一个值。

更多细节见Property Binding


Signal

信号是一个QML对象发出的通知。当对象发出信号时,其他对象能够接收并通过signal handler来处理这个信号。

大多数QML对象的属性都包含一个改变信号,以及一个处理改变信号的信号处理者。客户可以定义并实现这个功能。

例如,MouseArea类型的一个实例的"onClicked()"处理者可以被应用程序定义为播放一段音频。

更多细节见Signal and Handler Event System


Signal Handler

信号处理者就是一段能够被信号触发的表达式(或函数)。类似C++中的"slot"。

更多细节见Signal and Handler Event System


Lazy Instantiation

为了避免当前不必要运行的对象影响程序的表现,我们可以让对象实例化"偷下懒",

Qt Quick提供了Loader类型使得延迟实例化更加方便。