Абстракция платформы 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 |
qwayland |
|
Поддержка Wayland |
qwindows |
QWindowsIntegrationPlugin | Поддержка Windows |
qwinrt |
QWinRTIntegrationPlugin | Поддержка WinRT и Windows Phone |
qxcb |
QXcbIntegrationPlugin | Поддержка X Window System (X11) |
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.9/qpa.html