Точки расширения 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.2/qtquick-cppextensionpoints.html