Spec-Zone.ru › Qt 6.1

Точки расширения C++ для Qt Quick

Все приложения QML могут быть расширены с помощью C++, чтобы использовать дополнительную функциональность, реализованную на C++ коде, или предоставить QML плагин на основе C++. Эта тема расширения QML из C++ рассмотрена в документации по интеграции QML и C++.

Кроме того, модуль Qt Quick предоставляет несколько точек расширения и интеграции для разработчиков C++, специфичных для этого модуля. В частности, он позволяет разработчикам C++ создавать и регистрировать пользовательские типы, производные от QQuickItem, которые могут быть отрисованы Qt Quick. Он также предоставляет несколько классов, связанных с графическим деревом сцены, позволяющих разработчикам определять собственные примитивы отрисовки.

Пользовательские типы, производные от QQuickItem

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

Классы, связанные с графическим деревом сцены

Qt Quick 2 использует специализированное графическое дерево сцены, основанное на OpenGL ES 2.0 или OpenGL 2.0 для отрисовки. Использование графического дерева сцены для графики вместо традиционных императивных систем отрисовки (QPainter и аналогичных) означает, что сцену, подлежащую отрисовке, можно сохранить между кадрами, а весь набор примитивов для отрисовки известен перед началом отрисовки. Это открывает ряд возможностей для оптимизации, таких как объединение вызовов отрисовки OpenGL для минимизации изменений состояния или отбрасывание скрытых примитивов.

API C++ Qt Quick предоставляет различные классы, которые позволяют создавать пользовательские узлы на C++.

Дополнительные сведения см. в документации по Графическому дереву сцен Qt Quick.

Поддержка пиксельных карт и многопоточных изображений

В то время как движок QML позволяет приложениям QML загружать изображения из системных или сетевых ресурсов, некоторые приложения могут потребовать дополнительную возможность загрузки изображений из процессов на основе C++. Это можно реализовать с помощью класса QQuickImageProvider, который обеспечивает поддержку загрузки пиксельных карт и многопоточных запросов на изображения для приложений QML. Любое приложение QML, которое запрашивает изображение с помощью специальной схемы URL "image:", будет перенаправлено к соответствующему поставщику изображений для загрузки изображения.

Дополнительную информацию см. в документации по QQuickImageProvider.

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

Spec-Zone.ru

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