Qt Graphs Migración desde Qt DataVisualization
La API y la funcionalidad entre Qt DataVisualization y Qt Graphs se han mantenido prácticamente sin cambios. Sin embargo, hay algunas diferencias que deben tenerse en cuenta al migrar su aplicación de Qt DataVisualization a Qt Graphs:
- Declaración de importación QML
- Inclusión del módulo CMake
- Inclusión del módulo qmake
- Creación de aplicaciones widget
- Requisito de utilizar OpenGL backend
- Clases eliminadas
- API eliminadas
- API modificadas
Declaración de importación QML
La declaración de importación en Qt DataVisualization:
import QtDataVisualizationse cambia a
import QtGraphspara Qt Graphs.
Inclusión del módulo CMake
La inclusión en Qt DataVisualization:
find_package(Qt6 REQUIRED COMPONENTS DataVisualization)
target_link_libraries(mytarget PRIVATE Qt6::DataVisualization)se cambia a:
find_package(Qt6 REQUIRED COMPONENTS Graphs)
target_link_libraries(mytarget PRIVATE Qt6::Graphs)para Qt Graphs.
Inclusión del módulo Qmake
La inclusión en Qt DataVisualization:
QT += datavisualization
se cambia a:
QT += graphs
para Qt Graphs.
Creación de Aplicaciones Widget
Para crear un Graph en una aplicación widget, cambia el código de:
Q3DBars *barGraph = new Q3DBars(); QWidget *barsWidget = new QWidget(); QWidget *container = QWidget::createWindowContainer(barGraph, barsWidget); auto *hLayout = new QHBoxLayout(barsWidget); hLayout->addWidget(container, 1);
a:
QQuickWidget *quickWidget = new QQuickWidget(); Q3DBarsWidgetItem *barGraph = new Q3DBarsWidgetItem(); barGraph->setWidget(quickWidget); auto *hLayout = new QHBoxLayout(quickWidget);
Requisito para usar OpenGL Backend
Para utilizar Qt Graphs 3D, ya no es necesario forzar el uso del backend OpenGL:
// Remove this line qputenv("QSG_RHI_BACKEND", "opengl");
Qt Graphs utiliza Qt Quick 3D para el renderizado, y como tal soporta los backends de renderizado nativos de la plataforma en la que se está ejecutando.
Clases eliminadas
- Q3DCámara
- Q3DLight
- Q3DObject
- Q3DTheme
APIs eliminadas
- hasContext
- shadowsSupported
- reflexión
- reflectividad
API modificadas
- optimizationHint
- renderingMode
- renderToImage
- ColorGradient y ColorGradientStop
- ThemeColor
- API de datos
- API de cámara
- APIs de temas
- Enums
optimizationHint
Legacy es ahora el modo que era OptimizationDefault en QtDataVisualization. Default usa instanciación, y debería usarse para todos los objetivos que lo soporten.
renderingMode
RenderDirectToBackground_NoClear ha sido eliminado, pues ya era obsoleto en QtDataVisualization en Qt 6.
renderToImage
renderToImage ahora devuelve QSharedPointer<QQuickItemGrabResult> en lugar de QImage, y ya no toma msaaSamples como parámetro.
ColorGradient y ColorGradientStop
ColorGradient son ahora Gradient y ColorGradientStop GradientStop .
ThemeColor
ThemeColor es ahora Color.
API de datos
Ya no es necesario crear matrices de datos con new. Por ejemplo, cuando se creaban datos para el gráfico de barras en Qt DataVisualization, se hacía así:
// Qt DataVisualization approach. QBarDataRow *data = new QBarDataRow; *data << 1.0f << 3.0f << 7.5f << 5.0f << 2.2f;
Ahora se hace así:
// Qt Graphs approach. QBarDataRow data; data << 1.0f << 3.0f << 7.5f << 5.0f << 2.2f; series->dataProxy()->addRow(data);
APIs de cámara
Como Q3DCamera fue removido, las funciones requeridas de él fueron movidas. cameraPreset, cameraTargetPosition, cameraXRotation, cameraYRotation, cameraZoomLevel, wrapCameraXRotation, and wrapCameraYRotation son ahora las partes de GraphsItem3D.
APIs de temas
Como Q3DTheme fue eliminado y la tematización entre gráficos 2D y 3D unificada, algunas de las funciones requeridas de él se han movido, y el resto se puede encontrar en el reemplazo, GraphsTheme. lightColor, ambientLightStrength, lightStrength, and shadowStrength se implementan ahora en GraphsItem3D.
windowColor se ha eliminado. backgroundColor hace ahora lo que hacía windowColor, y una nueva función plotAreaBackgroundColor sustituye la funcionalidad de lo que hacía anteriormente backgroundColor.
El esquema de color genérico de todo el gráfico se controla ahora mediante una propiedad color scheme, y los colores de las series mediante una propiedad theme. Si el esquema de color no se establece explícitamente, seguirá la temática del escritorio (Claro/Oscuro).
Enums
En Qt Graphs, todos los enums se implementan como enums de ámbito, por ejemplo, para el QAbstract3DGraph::ShadowQualityLow en Qt DataVisualization, el enum correspondiente en Qt Graphs es 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.