Sur cette page

Graphiques

Les applications multiplateformes peuvent utiliser Qt pour afficher des éléments graphiques. Qt fait abstraction des API graphiques sous-jacentes des plates-formes afin que les développeurs puissent se concentrer sur le code de l'application.

L'interface matérielle de rendu Qt (RHI) traduit les appels graphiques 3D des applications Qt vers les API graphiques disponibles sur la plateforme cible.

Les API graphiques prises en charge sont les suivantes

  • OpenGL (à partir de la version 2.1)
  • OpenGL ES (à partir de la version 2.0)
  • Vulkan (à partir de la version 1.0)
  • Direct3D 11 (à partir de la version 11.1)
  • Direct3D 12 (à partir de la version 12.0)
  • Metal (à partir de la version 1.2)

Les graphiques dans les applications Qt Quick

Qt Quick utilisent un graphe de scène pour le rendu. Le moteur de rendu du graphe de scène peut créer des appels graphiques efficaces et augmenter les performances. Le graphe de scène dispose d'une API accessible qui vous donne la flexibilité nécessaire pour créer des graphiques complexes mais rapides.

Les pages de la liste suivante contiennent plus d'informations sur le rendu des applications Qt Quick.

Choix d'un chemin de rendu

Qt utilise les API graphiques de la plateforme cible dans la mesure du possible, mais il est possible de configurer le chemin de rendu de Qt avec une API spécifique. Dans de nombreux cas, le choix d'une API spécifique peut améliorer les performances et permet aux développeurs de déployer sur une plateforme qui possède une API graphique spécifique. Consultez la page Rendu via l'interface matérielle de rendu Qt pour savoir comment définir le chemin de rendu dans QQuickWindow.

Graphiques 2D

Qt dispose de plusieurs API différentes pour dessiner des primitives graphiques 2D. Voir la page séparée sur les graphiques 2D dans Qt pour une vue d'ensemble des possibilités.

Graphiques 3D avec Qt Quick 3D

Qt Quick 3D est un module complémentaire qui fournit une API de haut niveau pour la création de contenu 3D et d'interfaces utilisateur 3D basées sur Qt Quick. Il étend le graphe de scèneQt Quick qui vous permet d'implémenter du contenu 3D dans les applications 2D Qt Quick.

Effets de shaders

Le site Qt Shader Tools fournit un outil, QSB, permettant de traduire les nuanceurs de sommets et de fragments en un ensemble d'interfaces Qt Quick. En particulier, le type QML ShaderEffect et les sous-classes QSGMaterial peuvent utiliser les résultats de QSB. Qt Quick 3D possède son propre cadre pour l'importation de shaders dans les scènes 3D.

La liste suivante contient des informations sur les effets des shaders.

Graphiques de haut niveau avec Qt GUI

Qt GUI fournit un système de fenêtrage, de peinture et de typographie de haut niveau. QPainter fournit une API pour dessiner des graphiques vectoriels, du texte et des images sur différentes surfaces ou instances QPaintDevice, telles que QImage, QOpenGLPaintDevice, QWidget, et QPrinter. Pour les interfaces utilisateur Qt Widgets, Qt utilise un moteur de rendu logiciel.

La liste suivante contient des informations sur les API de dessin de haut niveau de Qt GUI.

Graphiques de bas niveau avec Qt GUI

Qt GUI Qt GUI fournit des outils multiplateformes pour gérer les contextes OpenGL et les instances Vulkan. Les applications qui effectuent le rendu directement avec OpenGL, OpenGL ES ou Vulkan peuvent utiliser QOpenGLContext, QOpenGLFunctions, QVulkanInstance, QVulkanFunctions, et QVulkanDeviceFunctions pour gérer les contextes, les instances et accéder aux fonctions des API OpenGL et Vulkan d'une manière portable.

Qt GUI propose également la famille d'API Rendering Hardware Interface (RHI) de Qt, telles que QRhi et QShader, pour les applications qui souhaitent effectuer un rendu à l'aide de l'infrastructure de rendu 3D portable et multiplateforme que Qt lui-même utilise pour mettre en œuvre le graphe de scène Qt Quick et le moteur de rendu 3D Qt Quick. Ces classes sont proposées en tant qu'API "semi-publiques" avec une promesse de compatibilité limitée pour le moment, tout comme les classes Qt Platform Abstraction. Cependant, les classes QRhi sont accompagnées d'une documentation complète. Consultez la classe QRhi pour commencer.

Le module Qt GUI permet de cibler un tampon QWindow ou un tampon hors écran, tel que QRhiTexture, avec le rendu basé sur QRhi. Avec les interfaces utilisateur basées sur QWidget ou QML (Qt Quick), travailler avec un QWindow soutenu par une plateforme native n'est pas toujours le moyen le plus pratique. C'est pourquoi le module Qt Widgets propose QRhiWidget, tandis que Qt Quick propose QQuickRhiItem. Ces classes de base permettent de créer facilement des sous-classes QWidget ou QQuickItem, dont les instances effectuent un rendu portable basé sur QRhi dans une texture qui est ensuite composée automatiquement avec la scène Widgets ou Qt Quick.

Qt OpenGL Module

Le module Qt OpenGL est destiné aux applications qui nécessitent un accès OpenGL. Ce module est destiné à maintenir la compatibilité avec les applications Qt 5 et avec Qt GUI. Pour les interfaces utilisateur qui utilisent QWidget, QOpenGLWidget est un widget qui peut ajouter des scènes OpenGL.

Impression

Qt Support permet d'imprimer directement sur des imprimantes réelles, localement ou sur le réseau, ainsi que de produire des documents PDF. La façon d'imprimer avec Qt est décrite en détail sur la page Qt Print Support page.

Images

Qt prend en charge la lecture, l'écriture et la manipulation d'images grâce à la classe QImage. En outre, pour un contrôle plus fin de la manière dont les images sont chargées ou sauvegardées, vous pouvez utiliser les classes QImageReader et QImageWriter respectivement. Pour ajouter la prise en charge de formats d'image supplémentaires, en dehors de ceux fournis par Qt Image Formats, vous pouvez créer des modules d'extension de format d'image en utilisant les classes QImageIOHandler et QImageIOPlugin.

Voir la page Lire et écrire des fichiers images pour plus d'informations.

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