Sur cette page

Qt Data Visualization Vue d'ensemble

Le module Qt Data Visualization permet de développer rapidement des visualisations 3D complexes et dynamiques pour les secteurs exigeants en matière d'analyse, tels que la recherche universitaire et le secteur médical. Qt 3D La visualisation de données fournit des barres 3D, des nuages de points et des visualisations de surface. La combinaison de l'interaction avec l'utilisateur et de la visualisation de dessins en 3D en temps réel permet de créer des interfaces utilisateur qui utilisent l'espace de manière efficace. Le passage d'une présentation en 3D à une présentation en 2D permet d'exploiter pleinement la valeur de la 3D dans la visualisation des données.

L'aspect et la convivialité des graphiques peuvent être personnalisés en utilisant les thèmes prédéfinis ou en en définissant de nouveaux. En outre, les scènes peuvent être personnalisées en spécifiant les paramètres de la caméra, et les éléments individuels peuvent être personnalisés en utilisant des maillages prédéfinis ou définis par l'utilisateur.

Qt Data Visualization offre des proxys de données prêts à l'emploi qui peuvent être utilisés pour visualiser des données provenant de modèles d'éléments Qt Visualization et de cartes d'altitude. Chaque type de graphique possède un type de proxy de base, qui accepte les données dans un format adapté à cette visualisation. Pour plus d'informations, voir Qt Data Visualization Data Handling.

Les utilisateurs finaux peuvent interagir avec les données présentées par les graphiques de plusieurs manières, notamment en faisant pivoter les graphiques, en zoomant sur les données, en sélectionnant des éléments et en visualisant des tranches 2D des données 3D pour une meilleure lisibilité. Pour plus d'informations, voir Qt Data Visualization Interagir avec les données.

Remarque : le module Qt Data Visualization est obsolète depuis Qt 6.10. Pour les nouveaux projets, utilisez le module Qt Graphs à la place. Qt Graphs utilise le moteur de rendu natif de chaque plateforme (Metal sur macOS, DirectX sur Windows, OpenGL ou Vulkan sur Linux) pour obtenir un rendu accéléré par le matériel pour les graphiques 2D et 3D. Pour migrer du module Qt Data Visualization au module Qt Graphs, reportez-vous à Qt Graphs Migration de Qt DataVisualization ou au cours de la Qt Academy Migrating to Qt Graphs.

Types de graphiques

Le module Qt Data Visualization fournit les types de graphiques 3D suivants :

La classe QAbstract3DGraph sous-classe la classe 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 en 3D

Les graphiques à barres 3D présentent les données sous forme de barres 3D regroupées par catégorie. La classe Q3DBars est utilisée pour créer un graphique et les classes QBar3DSeries et QBarDataProxy sont utilisées pour définir les données du graphique, ainsi que pour contrôler les propriétés visuelles du graphique, telles que le mode de dessin et l'ombrage. En QML, les types correspondants sont Bars3D, Bar3DSeries, et BarDataProxy.

Pour plus d'informations, voir How to construct a minimal Q3DBars graph, et les exemples de graphiques à barres simples.

Graphiques de dispersion en 3D

Les graphiques de dispersion en 3D présentent les données sous la forme d'une collection de points. La classe Q3DScatter est utilisée pour créer un graphique et les classes QScatter3DSeries et QScatterDataProxy sont utilisées pour définir les données du graphique, ainsi que pour contrôler les propriétés visuelles du graphique. En QML, les types correspondants sont Scatter3D, Scatter3DSeries, et ScatterDataProxy.

Pour plus d'informations, voir How to construct a minimal Q3DScatter graph, et les exemples de graphiques de dispersion simples.

Graphiques de surface en 3D

Les graphiques de surface en 3D présentent les données sous forme de tracés de surface en 3D. La classe Q3DSurface est utilisée pour créer un graphique et les classes QSurface3DSeries et QSurfaceDataProxy sont utilisées pour définir les données du graphique, ainsi que pour contrôler les propriétés visuelles du graphique. En QML, les types correspondants sont Surface3D, Surface3DSeries, et SurfaceDataProxy.

Pour plus d'informations, voir les exemples de How to construct a minimal Q3DSurface graph, de la galerie de graphiques et de la galerie de graphiques de surface.

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
  • Anti-crénelage
  • Ombrage plat pour les surfaces
  • 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 lorsque vous utilisez 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 pendant le rendu normal de l'élément 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 n'obéissent pas à l'ordre z des éléments QML et ne peuvent pas être partiellement transparents. Par conséquent, le changement de mode de rendu est une question de performance par rapport à la qualité.

Qt Quick utilise un graphique de scène dédié pour le rendu des données et constitue donc le meilleur choix pour la visualisation des données.

Axes 3D

Qt Data Visualization supporte les types d'axes suivants :

  • Axe des valeurs
  • Axe de catégorie

Un axe peut être configuré pour afficher une ligne ou une grille. Les deux types d'axes sont des spécialisations de la classe QAbstract3DAxis ou du type QML AbstractAxis3D.

Un axe de valeur peut recevoir une plage de valeurs et des nombres de segments et de sous-segments pour diviser la plage. Des étiquettes sont dessinées entre chaque segment. Des lignes de quadrillage sont tracées entre chaque segment et chaque sous-segment. L'axe des valeurs est implémenté à l'aide de la classe QValue3DAxis ou du type QML ValueAxis3D.

L'axe des catégories possède 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 sur les positions des catégories, si elles sont fournies. Des lignes de grille sont tracées entre les catégories, si elles sont visibles. Un axe de catégorie est mis en œuvre à l'aide de la classe QCategory3DAxis ou du type QML CategoryAxis3D.

Si aucun axe n'est défini explicitement pour un graphique, des axes temporaires par défaut sans étiquette 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 pour cette orientation est détruit.

Tous les types de graphiques permettent d'afficher plusieurs séries simultanément. Toutes les séries ne doivent pas nécessairement contenir le même nombre de lignes et de colonnes. Les étiquettes des lignes et des colonnes proviennent de la première série ajoutée, à moins qu'elles ne soient explicitement définies pour les axes des lignes et des colonnes.

Les formateurs d'axes peuvent être utilisés pour personnaliser les lignes et les étiquettes de la grille des axes de valeurs. La classe QValue3DAxisFormatter et le type QML ValueAxis3DFormatter fournissent des règles de formatage pour un axe 3D linéaire. La classe QLogValue3DAxisFormatter et le type QML LogValueAxis3DFormatter fournissent des règles de formatage pour un axe 3D à valeur logarithmique.

Les axes horizontaux polaires peuvent être utilisés pour les graphiques de surface et de dispersion en définissant la propriété polar.

Thèmes 3D

Un thème est une collection intégrée 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 Le logiciel est livré avec les thèmes prédéfinis suivants, qui peuvent être utilisés comme base pour des thèmes personnalisés :

  • Qt est un thème lumineux 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 foncé dont la couleur de base est le blanc.
  • Isabelle est un thème sombre dont la couleur de base est le jaune.
  • Défini par l'utilisateur est le thème par défaut destiné à être personnalisé. Pour plus d'informations, voir 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 spécifiés séparément pour chaque série. Par exemple, des gradients différents peuvent être spécifiés pour différentes couches du graphique afin de lui donner un aspect plus réaliste. Pour un exemple, voir la galerie des graphiques de surface.

Personnalisation des scènes 3D

Une scène 3D est mise en œuvre à l'aide de la classe Q3DScene ou du type QML Scene3D. Une scène contient une seule caméra active, mise en œuvre à l'aide de la classe Q3DCamera ou du type Camera3D, et une seule source lumineuse active, mise en œuvre à 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 lumière suit automatiquement la caméra.

La caméra peut être personnalisée en spécifiant sa position prédéfinie, sa rotation et son niveau de zoom. 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 objets et les surfaces. Le type de maillage détermine l'aspect 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é dans un fichier de définition de géométrie 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. Les éléments ont un maillage personnalisé, une position, une mise à l'échelle, une rotation et une texture optionnelle.

La classe QCustom3DVolume et le type QML Custom3DVolume peuvent être utilisés pour créer des objets à rendu volumétrique à ajouter à un graphique. Un objet à rendu volumétrique 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 implémentent 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.