Qt Graphs Migration von Qt DataVisualization
Die API und die Funktionalität zwischen Qt DataVisualization und Qt Graphs blieben weitgehend unverändert. Es gibt jedoch einige Unterschiede, die bei der Migration Ihrer Anwendung von Qt DataVisualization zu Qt Graphs berücksichtigt werden müssen:
- QML-Import-Anweisung
- Einbindung des CMake-Moduls
- Einbindung des qmake-Moduls
- Erstellung der Widget-Anwendung
- Voraussetzung für die Verwendung des OpenGL-Backends
- Entfernte Klassen
- Entfernte APIs
- Geänderte APIs
QML-Importanweisung
Die Import-Anweisung in Qt DataVisualization:
import QtDataVisualizationwurde geändert in:
import QtGraphsfür „ Qt Graphs “.
Einbindung des CMake-Moduls
Die Einbindung in Qt DataVisualization:
find_package(Qt6 REQUIRED COMPONENTS DataVisualization)
target_link_libraries(mytarget PRIVATE Qt6::DataVisualization)wird geändert in:
find_package(Qt6 REQUIRED COMPONENTS Graphs)
target_link_libraries(mytarget PRIVATE Qt6::Graphs)für „ Qt Graphs “.
Einbindung des Qmake-Moduls
Die Einbindung in Qt DataVisualization:
QT += datavisualizationwird geändert in:
QT += graphsfür „ Qt Graphs “.
Erstellung einer Widget-Anwendung
Um in einer Widget-Anwendung ein Diagramm zu erstellen, ändern Sie Ihren Code von:
Q3DBars *barGraph = new Q3DBars();
QWidget *barsWidget = new QWidget();
QWidget *container = QWidget::createWindowContainer(barGraph, barsWidget);
auto *hLayout = new QHBoxLayout(barsWidget);
hLayout->addWidget(container, 1);in:
QQuickWidget *quickWidget = new QQuickWidget();
Q3DBarsWidgetItem *barGraph = new Q3DBarsWidgetItem();
barGraph->setWidget(quickWidget);
auto *hLayout = new QHBoxLayout(quickWidget);Voraussetzung für die Verwendung des OpenGL-Backends
Um „ Qt Graphs 3D“ zu nutzen, müssen Sie die Verwendung des OpenGL-Backends nicht mehr erzwingen:
// Remove this line
qputenv("QSG_RHI_BACKEND", "opengl");Qt Graphs Qt Quick 3D wird für das Rendering verwendet und unterstützt somit die nativen Rendering-Backends der jeweiligen Plattform, auf der die Anwendung ausgeführt wird.
Entfernte Klassen
- Q3DCamera
- Q3DLight
- Q3DObject
- Q3DTheme
Entfernte APIs
- hasContext
- shadowsSupported
- reflection
- reflectivity
Geänderte APIs
- optimierungshinweis
- Rendermodus
- renderToImage
- Farbverlauf und Farbverlaufsstopp
- ThemeColor
- Daten-APIs
- Kamera-APIs
- Design-APIs
- Enums
optimizationHint
Legacy ist nun der Modus, der in QtDataVisualization als „ OptimizationDefault “ bezeichnet wurde. „ Default “ nutzt Instanzierung und sollte für alle Ziele verwendet werden, die diese unterstützen.
renderingMode
RenderDirectToBackground_NoClear wurde entfernt, da er in QtDataVisualization in Qt 6 bereits veraltet war.
renderToImage
renderToImage gibt nun „ QSharedPointer<QQuickItemGrabResult> “ anstelle von „ QImage “ zurück und akzeptiert „ msaaSamples “ nicht mehr als Parameter.
ColorGradient und ColorGradientStop
ColorGradient heißen nun „ Gradient “ und „ ColorGradientStop “ sowie „ GradientStop “.
ThemeColor
ThemeColor heißt nun „ Color “.
Daten-APIs
Es ist nicht mehr erforderlich, Daten-Arrays mit „ new “ zu erstellen. Wenn beispielsweise Daten für ein Balkendiagramm in Qt DataVisualization erstellt wurden, erfolgte dies bisher wie folgt:
// Qt DataVisualization approach.
QBarDataRow *data = new QBarDataRow;
*data << 1.0f << 3.0f << 7.5f << 5.0f << 2.2f;Jetzt erfolgt dies folgendermaßen:
// Qt Graphs approach.
QBarDataRow data;
data << 1.0f << 3.0f << 7.5f << 5.0f << 2.2f;
series->dataProxy()->addRow(data);Kamera-APIs
Da Q3DCamera entfernt wurde, wurden die daraus benötigten Funktionen verschoben. „ cameraPreset, cameraTargetPosition, cameraXRotation, cameraYRotation, cameraZoomLevel, wrapCameraXRotation, and wrapCameraYRotation “ sind nun Teil von „ GraphsItem3D “.
Theme-APIs
Da „Q3DTheme“ entfernt und die Themenverwaltung für 2D- und 3D-Diagramme vereinheitlicht wurde, wurden einige der erforderlichen Funktionen daraus verschoben; die übrigen finden sich im Ersatzmodul „ GraphsTheme “. „ lightColor, ambientLightStrength, lightStrength, and shadowStrength “ sind nun in „ GraphsItem3D “ implementiert.
windowColor wurde entfernt. backgroundColor übernimmt nun die Aufgaben von windowColor, und eine neue Funktion plotAreaBackgroundColor ersetzt die Funktionalität von backgroundColor.
Das allgemeine Farbschema des gesamten Diagramms wird nun über die Eigenschaft „ color scheme “ gesteuert, die Farben der Reihen über die Eigenschaft „ theme “. Wenn kein Farbschema explizit festgelegt ist, wird das Desktop-Design (Hell/Dunkel) übernommen.
Enums
In „ Qt Graphs “ sind alle Enums als bereichsgebundene Enums implementiert. Beispielsweise ist für die Eigenschaft „ QAbstract3DGraph::ShadowQualityLow “ in Qt DataVisualization das entsprechende Enum in „ Qt Graphs “ „ 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.