Qt Graphs Migration depuis Qt DataVisualization
L'API et les fonctionnalités de Qt DataVisualization et d'Qt Graphs sont restées pratiquement inchangées. Il existe toutefois quelques différences à prendre en compte lors de la migration de votre application de Qt DataVisualization vers Qt Graphs:
- Instruction d'importation QML
- Inclusion du module CMake
- Inclusion du module qmake
- Création d’une application de widgets
- Nécessité d'utiliser le backend OpenGL
- Classes supprimées
- API supprimées
- API modifiées
Instruction d'importation QML
La déclaration d'importation dans Qt DataVisualization :
import QtDataVisualizationest modifiée comme suit :
import QtGraphspour Qt Graphs.
Inclusion du module CMake
L'inclusion dans Qt DataVisualization :
find_package(Qt6 REQUIRED COMPONENTS DataVisualization)
target_link_libraries(mytarget PRIVATE Qt6::DataVisualization)est remplacée par :
find_package(Qt6 REQUIRED COMPONENTS Graphs)
target_link_libraries(mytarget PRIVATE Qt6::Graphs)pour Qt Graphs.
Inclusion du module Qmake
L'inclusion dans Qt DataVisualization :
QT += datavisualizationest remplacée par :
QT += graphspour Qt Graphs.
Création d'une application de widgets
Pour créer un graphique dans une application de widget, remplacez votre code :
Q3DBars *barGraph = new Q3DBars();
QWidget *barsWidget = new QWidget();
QWidget *container = QWidget::createWindowContainer(barGraph, barsWidget);
auto *hLayout = new QHBoxLayout(barsWidget);
hLayout->addWidget(container, 1);par :
QQuickWidget *quickWidget = new QQuickWidget();
Q3DBarsWidgetItem *barGraph = new Q3DBarsWidgetItem();
barGraph->setWidget(quickWidget);
auto *hLayout = new QHBoxLayout(quickWidget);Condition requise pour utiliser le backend OpenGL
Pour utiliser « Qt Graphs 3D », vous n’avez plus besoin de forcer l’utilisation du backend OpenGL :
// Remove this line
qputenv("QSG_RHI_BACKEND", "opengl");Qt Graphs utilise l'Qt Quick 3D pour le rendu et prend donc en charge les backends de rendu natifs de la plateforme sur laquelle il s'exécute.
Classes supprimées
- Q3DCamera
- Q3DLight
- Q3DObject
- Q3DTheme
API supprimées
- hasContext
- shadowsSupported
- reflection
- reflectivity
API modifiées
- optimizationHint
- mode de rendu
- renderToImage
- ColorGradient et ColorGradientStop
- ThemeColor
- API de données
- API de caméra
- API de thèmes
- Énumérations
optimizationHint
Legacy correspond désormais au mode « OptimizationDefault » de QtDataVisualization. Le mode « Default » utilise l’instanciation et doit être utilisé pour toutes les cibles qui la prennent en charge.
renderingMode
RenderDirectToBackground_NoClear a été supprimé, car il était déjà obsolète dans QtDataVisualization sous Qt 6.
renderToImage
renderToImage renvoie désormais « QSharedPointer<QQuickItemGrabResult> » au lieu de « QImage », et ne prend plus « msaaSamples » comme paramètre.
ColorGradient et ColorGradientStop
ColorGradient s'appellent désormais respectivement Gradient et ColorGradientStop GradientStop .
ThemeColor
ThemeColor s'appelle désormais Color.
API de données
Il n'est plus nécessaire de créer des tableaux de données avec new. Par exemple, lorsque des données étaient créées pour un graphique à barres dans Qt DataVisualization, cela se faisait ainsi :
// Qt DataVisualization approach.
QBarDataRow *data = new QBarDataRow;
*data << 1.0f << 3.0f << 7.5f << 5.0f << 2.2f;Désormais, cela se fait ainsi :
// Qt Graphs approach.
QBarDataRow data;
data << 1.0f << 3.0f << 7.5f << 5.0f << 2.2f;
series->dataProxy()->addRow(data);API de caméra
Q3DCamera ayant été supprimée, les fonctions qu'elle contenait ont été déplacées. cameraPreset, cameraTargetPosition, cameraXRotation, cameraYRotation, cameraZoomLevel, wrapCameraXRotation, and wrapCameraYRotation fait désormais partie de GraphsItem3D.
API de thèmes
Q3DTheme ayant été supprimé et la gestion des thèmes unifiée entre les graphiques 2D et 3D, certaines des fonctions nécessaires de cette bibliothèque ont été déplacées, et les autres se trouvent désormais dans la bibliothèque de remplacement, GraphsTheme. lightColor, ambientLightStrength, lightStrength, and shadowStrength est désormais implémentée dans GraphsItem3D.
windowColor a été supprimé. backgroundColor assure désormais les fonctions de windowColor, et une nouvelle fonction, plotAreaBackgroundColor, remplace les fonctionnalités de backgroundColor.
Le schéma de couleurs générique de l'ensemble du graphique est désormais contrôlé par la propriété color scheme, et les couleurs des séries par la propriété theme. Si le schéma de couleurs n'est pas explicitement défini, il suivra le thème du bureau (clair/foncé).
Énumérations
Dans Qt Graphs, toutes les énumérations sont implémentées sous forme d’énumérations à portée limitée ; par exemple, pour la propriété QAbstract3DGraph::ShadowQualityLow dans Qt DataVisualization, l’énumération correspondante dans Qt Graphs est QtGraphs3D::ShadowQuality::Low.
© 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.