Qt Data Visualization Présentation
Le module « Qt Data Visualization » permet de développer des visualisations 3D réactives, complexes et dynamiques pour des secteurs exigeants en matière d’analyse, tels que la recherche universitaire et le secteur médical. Qt 3D La visualisation des données propose des graphiques 3D de type histogramme, nuage de points et surfaces. La combinaison de l’interaction utilisateur et des visualisations 3D en temps réel permet de créer des interfaces utilisateur qui exploitent efficacement l’espace. Le passage d’une présentation 3D à une présentation 2D permet de tirer pleinement parti de la valeur ajoutée de la 3D dans la visualisation des données.
L’apparence des graphiques peut être personnalisée à l’aide de thèmes prédéfinis ou en en définissant de nouveaux. De plus, les scènes peuvent être personnalisées en spécifiant des paramètres pour la caméra, et les éléments individuels peuvent être personnalisés à l’aide de maillages prédéfinis ou définis par l’utilisateur.
Qt Data Visualization offre des proxys de données prêts à l’emploi pouvant être utilisés pour visualiser les données issues des modèles d’éléments Qt et des cartes d’altitude. Chaque type de graphique dispose d’un type de proxy de base, qui accepte les données dans un format adapté à cette visualisation. Pour plus d’informations, consultez la section « Gestion des données » surQt Data Visualization .
Les utilisateurs finaux peuvent interagir avec les données présentées par les graphiques de plusieurs façons, notamment en faisant pivoter les graphiques, en effectuant des zooms avant et arrière sur les données, en sélectionnant des éléments et en visualisant des coupes 2D des données 3D pour une meilleure lisibilité. Pour plus d’informations, consultez la section « Interaction avec les données » deQt Data Visualization .
Remarque : le module Qt Data Visualization est obsolète depuis Qt 6.10. Pour les nouveaux projets, utilisez plutôt le Qt Graphs module à la place. Qt Graphs utilise le moteur de rendu natif de chaque plateforme (Metal sous macOS, DirectX sous Windows, OpenGL ou Vulkan sous Linux) pour bénéficier d’un rendu accéléré par le matériel, tant pour les graphiques 2D que 3D. Pour migrer du module « Qt Data Visualization » vers le module « Qt Graphs », consultez la page « Qt Graphs Migration from Qt DataVisualization » ou le cours de la Qt Academy intitulé « Migrating to Qt Graphs ».
Types de graphiques
Le module « Qt Data Visualization » propose les types de graphiques 3D suivants :
La classe QAbstract3DGraph est une sous-classe de QWindow et fournit une boucle de rendu pour ses propres sous-classes qui implémentent les différents types de graphiques : Q3DBars, Q3DScatter et Q3DSurface. Le type de graphique détermine la manière dont les données sont présentées.
Graphiques à barres 3D
Les graphiques à barres 3D présentent les données sous forme de barres 3D regroupées par catégorie. La classe Q3DBars sert à créer un graphique, tandis que les classes QBar3DSeries et QBarDataProxy permettent de définir les données du graphique et de contrôler ses propriétés visuelles, telles que le mode de dessin et l’ombrage. En QML, les types correspondants sont Bars3D, Bar3DSeries et BarDataProxy.

Pour plus d’informations, consultez les exemples « How to construct a minimal Q3DBars graph » et « Simple Bar Graph ».
Graphiques de nuages de points 3D
Les graphiques de nuages de points 3D présentent les données sous la forme d’un ensemble de points. La classe Q3DScatter sert à créer un graphique, tandis que les classes QScatter3DSeries et QScatterDataProxy permettent de définir les données du graphique et d’en contrôler les propriétés visuelles. En QML, les types correspondants sont Scatter3D, Scatter3DSeries et ScatterDataProxy.

Pour plus d’informations, consultez les exemples « How to construct a minimal Q3DScatter graph » et « Simple Scatter Graph ».
Graphiques de surface 3D
Les graphiques de surface 3D présentent les données sous forme de tracés de surface 3D. La classe Q3DSurface sert à créer un graphique, tandis que les classes QSurface3DSeries et QSurfaceDataProxy permettent de définir les données du graphique et d’en contrôler les propriétés visuelles. En QML, les types correspondants sont Surface3D, Surface3DSeries et SurfaceDataProxy.

Pour plus d’informations, consultez les exemples « How to construct a minimal Q3DSurface graph », «Graph Gallery» et «Surface Graph Gallery ».
Utilisation d'OpenGL pour le rendu des données
Il est recommandé d’utiliser OpenGL 2.1 ou une version ultérieure pour le rendu des données. Si OpenGL ES2 est utilisé (y compris les versions Angle sous Windows), les fonctionnalités suivantes ne sont pas prises en charge :
- Ombres
- L’anticrénelage
- L'ombrage plat pour les surfaces
- Les objets volumétriques, car ils utilisent des textures 3D
Seule l'émulation OpenGL ES2 est disponible pour le moteur de rendu logiciel (c'est-à-dire lors de l'utilisation de la fonction « QCoreApplication::setAttribute » (Qt::AA_UseSoftwareOpenGL)).
Sélection du mode de rendu
En QML, vous pouvez définir la propriété AbstractGraph3D.RenderingMode pour déterminer si le graphique sera rendu directement sur l’arrière-plan de la fenêtre ou sur une surface hors écran qui sera ensuite dessinée lors du rendu normal des éléments QML.
Les modes de rendu en arrière-plan offrent des performances légèrement supérieures à celles du mode de rendu indirect, au prix d'un comportement QML non standard. Par exemple, les graphiques ne respectent pas l'ordre de superposition (z-order) des éléments QML et ne peuvent pas être partiellement transparents. Par conséquent, le choix du mode de rendu est un compromis entre performances et qualité.
Qt Quick utilise un graphe de scène dédié pour le rendu des données, ce qui en fait le meilleur choix pour la visualisation de données.
Axes 3D
Qt Data Visualization prend en charge les types d’axes suivants :
- Axe de valeur
- Axe de catégorie
Un axe peut être configuré pour afficher une ligne ou une grille. Ces deux types d’axes sont des spécialisations de la classe QAbstract3DAxis ou du type QML AbstractAxis3D.
Un axe de valeur peut se voir attribuer une plage de valeurs ainsi que le nombre de segments et de sous-segments dans lesquels diviser cette plage. Des étiquettes sont dessinées entre chaque segment. Des lignes de quadrillage sont dessinées entre chaque segment et chaque sous-segment. L’axe de valeur est implémenté à l’aide de la classe QValue3DAxis ou du type QML ValueAxis3D.
Un axe de catégorie comporte des plages nommées et des largeurs de plage réglables. Il est divisé en catégories de taille égale en fonction de la taille de la fenêtre de données définie par la plage de l’axe. Des étiquettes sont dessinées aux positions des catégories, si elles sont fournies. Des lignes de quadrillage sont dessinées entre les catégories, si elles sont visibles. Un axe de catégorie est implémenté à l’aide de la classe QCategory3DAxis ou du type QML CategoryAxis3D.
Si aucun axe n’est défini explicitement pour un graphique, des axes par défaut temporaires sans étiquettes sont créés. Ces axes par défaut peuvent être modifiés via les accesseurs d’axe, mais dès qu’un axe est défini explicitement pour une orientation particulière, l’axe par défaut correspondant à cette orientation est détruit.
Tous les types de graphiques prennent en charge l’affichage simultané de plusieurs séries. Il n’est pas nécessaire que toutes les séries contiennent le même nombre de lignes et de colonnes. Les étiquettes de lignes et de colonnes sont reprises de la première série ajoutée, à moins qu’elles ne soient explicitement définies pour les axes des lignes et des colonnes.
Des formateurs d’axes peuvent être utilisés pour personnaliser les lignes de grille et les étiquettes des axes de valeurs. La classe `QValue3DAxisFormatter` et le type QML `ValueAxis3DFormatter` fournissent des règles de mise en forme pour un axe 3D à valeurs linéaires. La classe `QLogValue3DAxisFormatter` et le type QML `LogValueAxis3DFormatter` fournissent des règles de mise en forme pour un axe 3D à valeurs logarithmiques.
Les axes horizontaux polaires peuvent être utilisés pour les graphiques de surface et les nuages de points en définissant la propriété ` polar `.
Thèmes 3D
Un thème est un ensemble intégré de paramètres liés au style de l’interface utilisateur, appliqués à tous les éléments visuels d’un graphique, tels que les couleurs, les polices et la visibilité des éléments, ainsi que l’intensité de la lumière et de la lumière ambiante.
Qt Charts comprend les thèmes prédéfinis suivants, qui peuvent servir de base à la création de thèmes personnalisés :
- Qt est un thème clair dont la couleur de base est le vert.
- «Primary colors » est un thème clair dont la couleur de base est le jaune.
- «Digia » est un thème clair dont la couleur de base est le gris.
- «Stone moss » est un thème moyennement foncé dont la couleur de base est le jaune.
- «Army blue » est un thème moyennement clair dont la couleur de base est le bleu.
- « Retro » est un thème moyennement clair dont la couleur de base est le marron.
- «Ebony » est un thème sombre dont la couleur de base est le blanc.
- «Isabelle » est un thème foncé dont la couleur de base est le jaune.
- «User defined » est le thème par défaut destiné à être personnalisé. Pour plus d’informations, consultez Default Theme.
Il est également possible de créer des thèmes personnalisés à partir de zéro.
Si un graphique affiche les données de plusieurs séries, certains paramètres peuvent être définis séparément pour chaque série. Par exemple, différents dégradés peuvent être définis pour les différentes couches du graphique afin de lui donner un aspect plus réaliste. Pour un exemple, consultez la Galerie de graphiques de surface.
Personnalisation des scènes 3D
Une scène 3D est implémentée à l’aide de la classe Q3DScene ou du type QML Scene3D. Une scène contient une seule caméra active, implémentée à l’aide de la classe Q3DCamera ou du type Camera3D, et une seule source lumineuse active, implémentée à l’aide de la classe Q3DLight ou du type Light3D. La source lumineuse est toujours positionnée par rapport à la caméra. Par défaut, la position de la source lumineuse suit automatiquement celle de la caméra.
La caméra peut être personnalisée en spécifiant sa position, sa rotation et son niveau de zoom prédéfinis. Pour un exemple, voir « Graphique de dispersion simple ».
Personnalisation des éléments
Qt Data Visualization dispose de types de maillage prédéfinis pour les barres, les éléments et les surfaces. Le type de maillage détermine l’apparence d’une barre, d’un élément ou d’une surface sur un graphique. Un maillage défini par l’utilisateur peut être spécifié sous la forme d’un fichier de définition géométrique Wavefront OBJ. Pour plus de variété, un quaternion peut être défini pour la rotation du maillage.
Outre la personnalisation des éléments individuels, la classe QCustom3DItem ou le type QML Custom3DItem peuvent être utilisés pour ajouter des éléments personnalisés aux graphiques. Ces éléments disposent d’un maillage, d’une position, d’une échelle et d’une rotation personnalisés, ainsi que d’une texture facultative.
La classe QCustom3DVolume et le type QML Custom3DVolume permettent de créer des objets rendus en volume à ajouter à un graphique. Un objet rendu en volume est une boîte dotée d’une texture 3D. Trois plans de coupe sont pris en charge pour le volume, un le long de chaque axe principal du volume.
La classe QCustom3DLabel et le type QML Custom3DLabel permettent de créer des étiquettes personnalisées avec le texte, la police, la position, l’échelle et la rotation spécifiés. Les couleurs, les bordures et l’arrière-plan des étiquettes sont déterminés par le thème actif.
© 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.