Qt Graphs Migration depuis Qt DataVisualization
L'API et les fonctionnalités entre Qt DataVisualization et Qt Graphs sont restées pratiquement inchangées. Toutefois, certaines différences doivent être prises en considération lors de la migration de votre application de Qt DataVisualization vers Qt Graphs:
- Déclaration d'importation QML
- Inclusion du module CMake
- Inclusion du module qmake
- Création d'une application Widget
- Obligation d'utiliser le backend OpenGL
- Classes supprimées
- API supprimées
- API modifiées
Déclaration d'importation QML
La déclaration d'importation dans Qt DataVisualization :
import QtDataVisualizationest remplacée par :
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 += datavisualization
est remplacée par :
QT += graphs
pour Qt Graphs.
Création d'une application widget
Pour créer un graphique dans une application widget, changez votre code de :
Q3DBars *barGraph = new Q3DBars(); QWidget *barsWidget = new QWidget(); QWidget *container = QWidget::createWindowContainer(barGraph, barsWidget); auto *hLayout = new QHBoxLayout(barsWidget); hLayout->addWidget(container, 1);
à :
QQuickWidget *quickWidget = new QQuickWidget(); Q3DBarsWidgetItem *barGraph = new Q3DBarsWidgetItem(); barGraph->setWidget(quickWidget); auto *hLayout = new QHBoxLayout(quickWidget);
Obligation d'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 Qt Quick 3D pour le rendu et, en tant que tel, supporte les backends de rendu natifs de la plateforme sur laquelle il est exécuté.
Classes supprimées
- Q3DCamera
- Q3DLight
- Q3DObject
- Q3DTheme
API supprimées
- hasContext
- shadowsSupported
- réflexion
- reflectivity
API modifiées
- optimizationHint
- renderingMode
- renderToImage
- ColorGradient et ColorGradientStop
- ThemeColor
- API de données
- API de caméra
- API de thème
- Enums
optimizationHint
Legacy est maintenant le mode qui était OptimizationDefault dans QtDataVisualization. Default utilise l'instanciation, et devrait être utilisé pour toutes les cibles qui le supportent.
renderingMode
RenderDirectToBackground_NoClear a été supprimé, car il était déjà obsolète dans QtDataVisualization dans 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 sont désormais Gradient et ColorGradientStop GradientStop .
ThemeColor
ThemeColor est 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 passait ainsi :
// Qt DataVisualization approach. QBarDataRow *data = new QBarDataRow; *data << 1.0f << 3.0f << 7.5f << 5.0f << 2.2f;
Maintenant, cela se fait comme ceci :
// Qt Graphs approach. QBarDataRow data; data << 1.0f << 3.0f << 7.5f << 5.0f << 2.2f; series->dataProxy()->addRow(data);
API de caméra
Comme Q3DCamera a été supprimé, les fonctions nécessaires ont été déplacées. cameraPreset, cameraTargetPosition, cameraXRotation, cameraYRotation, cameraZoomLevel, wrapCameraXRotation, and wrapCameraYRotation sont maintenant des parties de GraphsItem3D.
API de thème
Comme Q3DTheme a été supprimé et que le thématisme entre les graphes 2D et 3D a été unifié, certaines des fonctions requises ont été déplacées, et le reste peut être trouvé dans le remplacement, GraphsTheme. lightColor, ambientLightStrength, lightStrength, and shadowStrength sont maintenant implémentées sur GraphsItem3D.
windowColor a été supprimée. backgroundColor fait maintenant ce que windowColor faisait auparavant, et une nouvelle fonction plotAreaBackgroundColor remplace la fonctionnalité de ce que backgroundColor faisait auparavant.
Le schéma de couleurs générique de l'ensemble du graphique est désormais contrôlé par une propriété color scheme, et les couleurs des séries par une propriété theme. Si la palette de couleurs n'est pas explicitement définie, elle suivra le thème du bureau (clair/foncé).
Enums
Dans Qt Graphs, tous les enums sont implémentés en tant qu'enums scopés, par exemple, pour l'enum QAbstract3DGraph::ShadowQualityLow dans Qt DataVisualization, l'enum correspondant 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.