Spec-Zone.ru › Qt 5.12

Абстракция платформы 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
  • 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.12/qpa.html

Spec-Zone.ru

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