Auf dieser Seite

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 QtDataVisualization

wurde geändert in:

import QtGraphs

fü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 += datavisualization

wird geändert in:

QT += graphs

fü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.