Spec-Zone.ru › Qt 5.9

Структура документа QML

Документ QML — это автономный фрагмент исходного кода QML, состоящий из двух частей:

  • Его операторы import
  • Определение единственного корневого объекта

По соглашению, между объявлениями импортов и определением иерархии объектов должна быть одна пустая строка.

Документы QML всегда закодированы в формате UTF-8.

Импорты

Документ должен импортировать необходимые модули или пространства имен типов, чтобы позволить движку загрузить типы объектов QML, на которые ссылается документ. По умолчанию, документ может обращаться к любым типам объектов QML, которые были определены через .qml файлы в той же директории; если документ должен ссылаться на любые другие типы объектов, он должен импортировать пространство имен типа, в которое эти типы были зарегистрированы.

QML не имеет препроцессора, который изменяет документ перед представлением его движку QML, в отличие от C или C++. Операторы import не копируют и не добавляют код в документ, а вместо этого указывают движку QML, как разрешать ссылки на типы, найденные в документе. Любая ссылка на тип, присутствующая в документе QML — например, Rectangle и ListView — включая те, которые сделаны внутри блока JavaScript или привязок свойств, — разрешаются исключительно на основе операторов импорта. Должен присутствовать как минимум один оператор import , такой как import QtQuick 2.0.

Для получения подробной информации об импортах QML см. документацию Синтаксис QML — Операторы импорта.

Определение корневого объекта

Документ 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 объекта. Это обсуждается подробнее в Документы как определения типов объектов QML.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.6/qtqml-documents-structure.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API