QML文档结构
一个QML文档是一个自包含QML源代码片段,由两部分组成:
- 导入声明
- 单根对象声明
按照习惯,导入部分和对象层次的定义部分用空行分开。
QML文档常常使用UTF-8格式编码。
导入
一个文档必须导入所需要的模块和类型命名空间,以便引擎可以加载文档中引用的QML对象类型。默认情况下,一个QML文档可以访问同目录下的所有.qml文件中定义的QML对象类型;如果一个文档需要引用任何其他的对象类型,该文档必须导入这些类型所注册的类型命名空间。
与C/C++不同,在呈现给QML引擎之前,QML语言没有预处理器来修改文档。导入声明并不是将代码拷贝并追加在文档的前面,而是命令QML引擎如何解析文档中所引用的类型。QML文档中的所有的类型引用,比如Rectangle、ListView,以及JavaScript块或者属性类属性的绑定,完全依赖于导入声明进行解析。至少需要一个导入声明,比如 import QtQuick 2.0。
详见QML Syntax-Import Statements了解QML导入的更加深入的信息。
根对象声明
一个QML文档描述一个可以实例化的对象层次结构。每个对象的定义都具有一定的结构;每个对象都有类型,可以有id、对象名、属性类属性、方法、信号以及信号处理器。
一个QML文档必须包含且仅有一个单根对象定义。下面是一个无效的,将会生成错误的例子:
// MyQmlFile.qml
import QtQuick 2.0
Rectangle { width: 200; height: 200; color: "red" }
Rectangle { width: 200; height: 200; color: "blue" } // invalid!
因为一个.qml文件自动定义一个QML类型,其中封装了单个QML对象定义。这部分内容在Documents as QML object type definitions中进一步讨论。