Spec-Zone.ru › Qt 6.1

Qt QML

Модуль Qt QML предоставляет фреймворк для разработки приложений и библиотек с помощью языка QML. Он определяет и реализует инфраструктуру языка и движка, а также предоставляет API для разработчиков приложений, чтобы расширять язык QML с помощью пользовательских типов и интегрировать код QML с JavaScript и C++. Модуль Qt QML предоставляет как API QML, так и API C++.

Обратите внимание, что, хотя модуль Qt QML предоставляет язык и инфраструктуру для приложений QML, модуль Qt Quick предоставляет множество визуальных компонентов, поддержку модели-представления, фреймворк для анимации и многое другое для построения пользовательских интерфейсов.

Для тех, кто только начинает работать с QML и Qt Quick, ознакомьтесь со статьей Приложения QML для введения в разработку приложений QML.

Использование модуля

API QML

Типы QML в Qt QML доступны через импорт QtQml. Чтобы использовать типы, добавьте следующую директиву импорта в ваш файл .qml:

import QtQml

API C++

Использование API C++ требует линковки с библиотекой модуля, либо напрямую, либо через другие зависимости. Несколько инструментов сборки имеют специальную поддержку для этого, включая CMake и qmake.

Сборка с CMake

Используйте команду find_package() для поиска необходимых компонентов модуля в пакете Qt6:

find_package(Qt6 COMPONENTS Qml REQUIRED)
target_link_libraries(mytarget PRIVATE Qt6::Qml)

См. также обзор Сборка с CMake.

Сборка с qmake

Чтобы настроить модуль для сборки с qmake, добавьте модуль в качестве значения переменной QT в файле проекта .pro:

QT += qml

QML и типы QML

Модуль Qt QML содержит фреймворк QML и важные типы QML, используемые в приложениях. Конструкции QML описаны в Справочнике QML.

Помимо базовых типов QML, модуль поставляется со следующими типами объектов QML:

  • Компонент
  • QtObject
  • Привязка
  • Соединения
  • Таймер

Глобальный объект Qt предоставляет полезные перечисления и функции для различных типов QML.

Списки и модели

Нововведение в Qt 5.1 — типы моделей перемещены в подмодуль QtQml.Models. Более подробную информацию см. на странице Модели Qt QML.

  • DelegateModel
  • DelegateModelGroup
  • ListElement
  • ListModel
  • ObjectModel

Среда JavaScript для приложений QML

Выражения JavaScript позволяют коду QML содержать логику приложения. Qt QML предоставляет фреймворк для выполнения выражений JavaScript в QML и из C++.

Эти разделы взяты из Справочника QML.

  • Интеграция QML и JavaScript
  • Использование выражений JavaScript с QML
  • Динамическое создание объектов QML из JavaScript
  • Определение ресурсов JavaScript в QML
  • Импорт ресурсов JavaScript в QML
  • Среда выполнения JavaScript

Интеграция QML с приложениями C++

Модуль также предоставляет фреймворк для запуска приложений QML. Фреймворк QML позволяет коду QML содержать выражения JavaScript и взаимодействовать с кодом C++.

  • Основные классы C++, предоставляемые модулем Qt QML
  • Интеграция QML и C++

Лицензии и авторские права

Qt QML доступен по коммерческим лицензиям от The Qt Company. Кроме того, он доступен по лицензиям свободного программного обеспечения. С Qt 5.4 эти лицензии свободного программного обеспечения — GNU Lesser General Public License, версия 3, или GNU General Public License, версия 2. Дополнительные сведения см. в разделе Лицензирование Qt.

Кроме того, Qt QML в Qt 6.1.0 может содержать модули сторонних разработчиков под следующими разрешительными лицензиями:

Сборщик макросов JavaScriptCore

Лицензия BSD 2-пунктная "упрощенная"

Руководства и другая информация

Дополнительная информация для написания приложений QML:

  • Справочник QML
  • Приложения QML — важная информация для разработки приложений с QML и Qt Quick
  • Qt Quick — модуль, который предоставляет набор типов QML и классов C++ для создания пользовательских интерфейсов и приложений с QML
  • Кэш QML на диске — как настроить, если и где движок QML кэширует результаты компиляции.

Справочник

  • Классы C++
  • Типы QML
  • Примеры

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

Spec-Zone.ru

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