Spec-Zone.ru › Qt 5.9

Абстракция платформы 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)

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.9/qpa.html

Spec-Zone.ru

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