Spec-Zone.ru › Qt 6.0

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 Qt::Qml)

См. также обзор Сборка с помощью CMake.

Сборка с помощью qmake

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

QT += qml

QML и типы QML

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

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

  • Component
  • QtObject
  • Binding
  • Connections
  • Timer

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

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

В Qt 5.1 типы моделей были перенесены в подмодуль QtQml.Models. Более подробная информация доступна на странице Qt QML Models.

  • 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 Licensing.

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

Макроассемблер JavaScriptCore

Лицензия BSD 2-clause "Simplified"

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

Дополнительная информация для написания приложений 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.0/qtqml-index.html

Spec-Zone.ru

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