Spec-Zone.ru › Qt 5.11

Абстракция платформы Qt

Абстракция платформы Qt (QPA) — это слой абстракции платформы для Qt 5 и заменяет Qt для встраиваемой 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/archives/qt-5.11/qpa.html

Spec-Zone.ru

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