Абстракция платформы Qt
Qt Platform Abstraction (QPA) — это абстракция платформы для Qt 5 и заменяет Qt for 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 |
qwayland |
|
Поддержка Wayland |
qwindows |
QWindowsIntegrationPlugin | Поддержка Windows |
qwinrt |
QWinRTIntegrationPlugin | Поддержка WinRT и Windows Phone |
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.12/qpa.html