Auf dieser Seite

Qt-Plattformabstraktion

Die Qt-Plattformabstraktion (QPA) ist die wichtigste Plattformabstraktionsschicht in Qt.

Die API ist an dem Klassenpräfix „ QPlatform* “ zu erkennen und wird zur Implementierung von übergeordneten Klassen verwendet, die typischerweise in Qt GUI, z. B. ` QPlatformWindow ` für die Integration in das Fenstersystem, die über ` QWindow` bereitgestellt wird, oder ` QPlatformTheme ` für eine tiefgreifendere Plattformanpassung und -integration, die über `QStyleHint` und ` QStyle` bereitgestellt wird.

Für die QPA-Klassen gibt es keine Garantien hinsichtlich der Quellcode- oder Binärkompatibilität, was bedeutet, dass die API nur mit der Qt-Version garantiert funktioniert, für die sie entwickelt wurde. API-Änderungen werden jedoch nur in Minor-Releases vorgenommen. (5.1, 5.2 usw.)

API-Übersicht

  • Integration in das Fenstersystem
    • QPlatformIntegration
    • QPlatformAccessibility
    • QPlatformBackingStore
    • QPlatformClipboard
    • QPlatformCursor
    • QPlatformDrag
    • QPlatformSchriftartendatenbank
    • QPlatformGrafikpuffer
    • QPlatformInputContext
    • QPlatformOffscreenSurface
    • QPlatformOpenGLContext
    • QPlatformScreen
    • QPlatformServices
    • QPlatformSharedGraphicsCache
    • QPlatformSurface
    • QPlatformWindow
  • Stil/Themen
    • QPlatformTheme
    • Plattform-Paletten
    • Plattform-Schriftarten
    • Hinweise zum Design
  • Native Dialoge und Menüs
    • QPlatformDialogHelper
    • QPlatformMenu
    • QPlatformMenuBar
    • QPlatformMenuItem

Hinweis: Neben den QPA-APIs gibt es in Qt noch viele weitere Plattformabstraktionen, zum Beispiel die Abstraktionen für den Ereignisdispatcher in Qt Core sowie die Abstraktionen der Rendering-Hardware in RHI. Die QPA-APIs konzentrieren sich hauptsächlich auf die Integration in das Fenstersystem und die damit verbundene Unterstützung.

QPA-Plugins

Konkrete Implementierungen der oben aufgeführten Schnittstellen befinden sich in QPA-Plugins (auch Plattform-Plugins genannt) und bieten Unterstützung für die verschiedenen Plattformen, auf denen Qt läuft. QPA-Plugins werden durch Unterklassen der Klassen „ QPlatform* “ implementiert.

Die folgende Tabelle fasst die verfügbaren Plattform-Plugins zusammen:

Plugin-NameName der Plugin-KlasseBeschreibung
qandroidQAndroidPlatformIntegrationAndroid-Unterstützung
qbsdfbQBsdFbIntegrationBsdFb-Unterstützung
qcocoaQCocoaIntegrationPluginmacOS-Unterstützung
qdirect2dQWindowsDirect2DIntegrationPluginÄhnlich wie das „ qwindows “-Plugin, ersetzt jedoch die Raster-Paint-Engine durch eine Direct2D-basierte Paint-Engine für QPixmap und QBackingStore.
qdirectfbQDirectFbIntegrationPluginDirectFB basiert auf Oberflächen, die einem „ QPaintDevice “ entsprechen.
qeglfsQEglFSIntegrationPluginEGLFS -Unterstützung für eingebettete Linux-Geräte.
qhaikuQHaikuIntegrationHaiku-Unterstützung
qiosQIOSIntegrationPluginiOS-Unterstützung
qlinuxfbQLinuxFbIntegrationPluginLinuxFB -Unterstützung für eingebettete Linux-Geräte.
qvncQVncIntegrationVNC-Unterstützung
qwayland
  • QWaylandIntegrationPlugin
  • QWaylandBrcmEglPlatformIntegrationPlugin
  • QWayland-EGL-Plattform-Integrations-Plugin
  • QWaylandXCompositeEgl-Plattform-Integrations-Plugin
  • QWaylandXCompositeGlx-Plattform-Integrations-Plugin
Wayland-Unterstützung
qwindowsQWindowsIntegrationPluginWindows-Unterstützung
qxcbQXcbIntegrationPluginUnterstützung für das X Window System (X11)

Auswahl eines QPA-Plugins

Qt wählt je nach Plattform ein Standard-QPA-Plugin aus. Mit der Umgebungsvariablen ` QT_QPA_PLATFORM ` und dem Befehlszeilenargument ` -platform ` können Sie diese Standardeinstellung überschreiben. Weitere Details finden Sie unter QGuiApplication.

Sie können eine durch Semikolons getrennte Liste übergeben, um ein Plugin zu installieren. In diesem Fall durchläuft das Installationsprogramm die Einträge in der Liste und installiert das erste verfügbare Plugin.

Beispiel:

-qpa xcb;wayland

Die obige Zeile prüft, ob das Plugin „ xcb “ verfügbar ist; falls nicht, wird anschließend nach dem Wayland-Plugin gesucht.

Erstellen eines QPA-Plugins

Derzeit gibt es keine ausführliche Anleitung zum Schreiben von QPA-Plugins. Es gibt jedoch zwei minimale Plugins, die mit Qt zum Testen und für andere spezielle Zwecke ausgeliefert werden und die Sie als Beispiele verwenden können:

  • qtbase/src/plugins/platforms/minimal/
  • qtbase/src/plugins/platforms/minimalegl/

Das „ qminimal “-Plugin wird für Tools verwendet, die gegen Qt GUI, jedoch keine Integration in das Fenstersystem erfordern (zum Beispiel „ qmlplugindump “). Es bietet zudem Diagnosefunktionen zum Speichern von Fensterinhalten in Bilddateien, die durch Umgebungsvariablen festgelegt werden.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.