Sur cette page

Abstraction de plate-forme Qt

L'abstraction de la plate-forme Qt (QPA) est la principale couche d'abstraction de la plate-forme dans Qt.

L'API peut être identifiée par le préfixe de classe QPlatform*, et est utilisée pour implémenter des classes de plus haut niveau typiquement trouvées dans Qt GUIpar exemple QPlatformWindow pour l'intégration du système de fenêtres, exposée à travers QWindow, ou QPlatformTheme pour une thématisation et une intégration plus profonde de la plate-forme, exposée à travers QStyleHint et QStyle.

Il n'existe aucune garantie de compatibilité source ou binaire pour les classes QPA, ce qui signifie que l'API n'est garantie de fonctionner qu'avec la version de Qt pour laquelle elle a été développée. Les modifications de l'API ne seront toutefois apportées que dans les versions mineures. (5.1, 5.2, etc.).

Vue d'ensemble de l'API

  • Intégration du système de fenêtres
    • QPlatformIntegration
    • QPlatformAccessibility
    • QPlatformBackingStore
    • QPlatformClipboard
    • QPlatformCursor
    • QPlatformDrag
    • QPlatformFontDatabase
    • QPlatformGraphicsBuffer (mémoire tampon graphique)
    • QPlatformInputContext
    • QPlatformOffscreenSurface
    • QPlatformOpenGLContext
    • QPlatformScreen
    • QPlatformServices
    • QPlatformSharedGraphicsCache
    • QPlatformSurface
    • QPlatformWindow
  • Style/thème
    • QPlatformTheme
    • palettes de la plate-forme
    • polices de la plate-forme
    • conseils sur le thème
  • Dialogues et menus natifs
    • QPlatformDialogHelper
    • QPlatformMenu
    • QPlatformMenuBar
    • QPlatformMenuItem

Note : En plus des API QPA, il existe de nombreuses autres abstractions de plateforme dans Qt, par exemple les abstractions de distribution d'événements dans Qt Core et les abstractions de matériel de rendu dans RHI. Les API QPA sont principalement axées sur l'intégration du système de fenêtres et le support correspondant.

Plugins QPA

Les implémentations concrètes des interfaces énumérées ci-dessus se trouvent dans les plugins QPA, ou plugins de plate-forme, qui ajoutent un support pour les différentes plates-formes sur lesquelles Qt fonctionne. Les plugins QPA sont implémentés en sous-classant les classes QPlatform*.

Le tableau suivant résume les plugins de plateforme disponibles :

Nom du pluginNom de la classe de pluginDescription des plugins
qandroidQAndroidPlatformIntegrationPrise en charge d'Android
qbsdfbQBsdFbIntegrationSupport BsdFb
qcocoaQCocoaIntegrationPluginsupport macOS
qdirect2dQWindowsDirect2DIntegrationPluginSimilaire au plugin qwindows, mais remplace le moteur de peinture raster par un moteur de peinture basé sur Direct2D pour QPixmap et QBackingStore.
qdirectfbQDirectFbIntegrationPluginDirectFB est centré sur les surfaces, qui sont l'équivalent d'un QPaintDevice.
qeglfsQEglFSIntegrationPluginSupportEGLFS pour les appareils Linux embarqués.
qhaikuQHaikuIntegrationSupport Haiku
qiosQIOSIntegrationPluginSupport iOS
qlinuxfbQLinuxFbIntegrationPluginPrise en charge deLinuxFB pour les appareils Linux embarqués.
qvncQVncIntegrationPrise en charge de VNC
qwayland
  • QWaylandIntegrationPlugin
  • QWaylandBrcmEglPlatformIntegrationPlugin
  • QWaylandEglPlatformIntegrationPlugin
  • QWaylandXCompositeEglPlatformIntegrationPlugin
  • QWaylandXCompositeGlxPlatformIntegrationPlugin
Support Wayland
qwindowsQWindowsIntegrationPluginSupport de Windows
qxcbQXcbIntegrationPluginSupport du système X Window (X11)

Sélection d'un plugin QPA

Qt sélectionnera un plugin QPA par défaut, en fonction de la plateforme. La variable d'environnement QT_QPA_PLATFORM et l'argument de ligne de commande -platform vous permettent de remplacer cette valeur par défaut. Voir QGuiApplication pour plus de détails.

Vous pouvez passer une liste séparée par des points-virgules pour installer un plugin. Dans ce cas, le programme d'installation parcourt les éléments de la liste et installe le premier plugin disponible.

Exemple :

-qpa xcb;wayland

La ligne ci-dessus vérifie si le plugin xcb est disponible, si ce n'est pas le cas, elle vérifie le plugin wayland.

Écrire un plugin QPA

Il n'existe pas pour l'instant de tutoriel détaillé sur l'écriture de plugins QPA. Cependant, il existe deux plugins minimaux livrés avec Qt Test pour les tests et d'autres objectifs spéciaux que vous pouvez utiliser comme exemples :

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

Le plugin qminimal est utilisé pour les outils qui se lient à Qt GUImais qui ne nécessitent pas d'intégration au système de fenêtres (par exemple, qmlplugindump). Il dispose également d'un support de diagnostic pour le dumping du contenu des fenêtres vers des fichiers images déterminés par des variables d'environnement.

© 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.