Абстракция платформы Qt
Qt Platform Abstraction (QPA) — это абстракция платформы для Qt 5, заменяющая Qt для Embedded Linux и платформенные порты из Qt 4.
Плагины QPA реализуются путём наследования различных QPlatform* классов. Существует несколько корневых классов, таких как QPlatformIntegration и QPlatformWindow для интеграции с системой окон, и QPlatformTheme для более глубокой темы платформы и интеграции. QStyle не является частью QPA.
Для классов QPA нет гарантий совместимости исходного кода или бинарных файлов, что означает, что плагин платформы гарантированно будет работать только с версией Qt, для которой он был разработан. Однако изменения API будут вноситься только в незначительных релизах. (5.1, 5.2 и т. д.)
Минимальные плагины QPA
В настоящее время нет подробной документации по написанию плагинов QPA. Однако в Qt 5 поставляются два минимальных плагина для тестирования и других специальных целей, которые вы можете использовать в качестве примеров:
qtbase/src/plugins/platforms/minimal/qtbase/src/plugins/platforms/minimalegl/
Плагин qminimal используется для инструментов, которые ссылаются на Qt GUI, но не требуют интеграции с системой окон (например, qmlplugindump). Он также поддерживает диагностику для вывода содержимого окна в файлы изображений в соответствии с переменными среды.
Обзор классов
- QPlatformIntegration
- QAbstractEventDispatcher
- QPlatformAccessibility
- QPlatformBackingStore
- QPlatformClipboard
- QPlatformCursor
- QPlatformDrag
- QPlatformFontDatabase
- QPlatformGraphicsBuffer
- QPlatformInputContext
- QPlatformNativeInterface
- QPlatformOffscreenSurface
- QPlatformOpenGLContext
- QPlatformScreen
- QPlatformServices
- QPlatformSharedGraphicsCache
- QPlatformSurface
- QPlatformWindow
- QPlatformTheme
- QPlatformDialogHelper
- QPlatformMenu
- QPlatformMenuBar
- QPlatformMenuItem
- QPlatformSystemTrayIcon
- палитра платформы
- шрифты платформы
- подсказки темы
qtbase/src/platformsupport содержит несколько вспомогательных классов для реализации плагинов платформы на системах Unix-подобных системах.
Плагины QPA
В следующей таблице обобщены доступные плагины платформы для QPA:
| Название плагина | Имя класса плагина | Описание |
|---|---|---|
qandroid |
QAndroidPlatformIntegration | Поддержка Android |
qbsdfb |
QBsdFbIntegration | Поддержка BsdFb |
qcocoa |
QCocoaIntegrationPlugin | Поддержка Cocoa |
qdirect2d |
QWindowsDirect2DIntegrationPlugin | Аналогично плагину qwindows, но заменяет движок растровой отрисовки движком отрисовки на основе Direct2D для QPixmap и QBackingStore. |
qdirectfb |
QDirectFbIntegrationPlugin | DirectFB ориентирован на поверхности, которые эквивалентны QPaintDevice. |
qeglfs |
QEglFSIntegrationPlugin | Поддержка EGLFS для встроенных устройств Linux. |
qhaiku |
QHaikuIntegration | Поддержка Haiku |
qios |
QIOSIntegrationPlugin | Поддержка iOS |
qlinuxfb |
QLinuxFbIntegrationPlugin | Поддержка LinuxFB для встроенных устройств Linux. |
qmirclient |
QMirClientIntegration | Поддержка клиента Mir |
qopenwf |
QOpenWFDIntegrationPlugin | Поддержка OpenWF Display для управления аппаратным обеспечением управления дисплеем. |
qqnx |
QQnxIntegrationPlugin | Поддержка QNX |
qvnc |
QVncIntegration | Поддержка VNC |
qwasm |
QWasmIntegration | Поддержка WebAssembly |
qwayland |
|
Поддержка Wayland |
qwindows |
QWindowsIntegrationPlugin | Поддержка Windows |
qwinrt |
QWinRTIntegrationPlugin |
Поддержка универсальной платформы Windows (UWP) Примечание: Этот плагин был первоначально написан для WinRT (Windows Runtime), поэтому называется |
qxcb |
QXcbIntegrationPlugin | Поддержка X Window System (X11) |
webgl |
QWebGLIntegrationPlugin | Поддержка WebGL для приложений Qt Quick |
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.15/qpa.html