Structure of a QML Document

QML文档是一段独立的QML源代码, 由两部分组成:

  • import 语句
  • 单个根对象声明

按照惯例, 一条空行将导入与对象层次结构定义分隔开.

QML文档始终以UTF-8格式编码.

导入部分

文档必须导入必要的模块或类型命名空间, 以使引擎能够加载文档中引用的QML对象类型. 默认情况下, 文档可以访问同一目录下的.qml文件定义的任何QML对象类型; 如果文档需要引用任何其他对象类型, 则必须导入已注册这些类型的类型命名空间.

与C或C++不同, QML没有预处理器. import语句不复制文档中的代码, 而是指示QML引擎如何解析文档中的类型引用. QML文档中存在的任何类型引用(如RectangleListView), 包括在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.