Spec-Zone.ru › Qt 5.13

Абстракция платформы 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
  • QWaylandIntegrationPlugin
  • QWaylandBrcmEglPlatformIntegrationPlugin
  • QWaylandEglPlatformIntegrationPlugin
  • QWaylandXCompositeEglPlatformIntegrationPlugin
  • QWaylandXCompositeGlxPlatformIntegrationPlugin
Поддержка 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.13/qpa.html

Spec-Zone.ru

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