Spec-Zone.ru › Qt 5.13

Структура документа 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/qt-5.13/qtqml-documents-structure.html

Spec-Zone.ru

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