Spec-Zone.ru › Qt 5.15

Абстракция платформы 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
  • QWaylandIntegrationPlugin
  • QWaylandBrcmEglPlatformIntegrationPlugin
  • QWaylandEglPlatformIntegrationPlugin
  • QWaylandXCompositeEglPlatformIntegrationPlugin
  • QWaylandXCompositeGlxPlatformIntegrationPlugin
Поддержка Wayland
qwindows QWindowsIntegrationPlugin Поддержка Windows
qwinrt QWinRTIntegrationPlugin Поддержка универсальной платформы Windows (UWP)

Примечание: Этот плагин был первоначально написан для WinRT (Windows Runtime), поэтому называется qwinrt.

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

Spec-Zone.ru

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