Structure of a QML Document
QML文档是一段独立的QML源代码, 由两部分组成:
- import 语句
- 单个根对象声明
按照惯例, 一条空行将导入与对象层次结构定义分隔开.
QML文档始终以UTF-8格式编码.
导入部分
文档必须导入必要的模块或类型命名空间, 以使引擎能够加载文档中引用的QML对象类型. 默认情况下, 文档可以访问同一目录下的.qml
文件定义的任何QML对象类型; 如果文档需要引用任何其他对象类型, 则必须导入已注册这些类型的类型命名空间.
与C或C++不同, QML没有预处理器. import
语句不复制文档中的代码, 而是指示QML引擎如何解析文档中的类型引用. QML文档中存在的任何类型引用(如Rectangle
和ListView
), 包括在JavaScript block块或属性绑定中生成的类型引用, 都将完全基于import
语句进行解析. 必须至少存在一个导入语句, 例如import QtQuick 2.0
.
详见 QML Syntax - Import Statements.
声明根对象
QML文档描述了实例化的对象层次结构. 每个对象定义都有一定的结构; 它有一个类型, 可以有一个id和一个对象名, 可以有属性, 可以有方法, 可以有信号, 还可以有信号处理程序.
QML只能包含一个根对象定义. 下面的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.