从 Qt DataVisualization 迁移到 Qt Graphs
Qt DataVisualization 和 Qt Graphs 之间的 API 和功能基本保持不变。然而,在将从 Qt DataVisualization 迁移到 Qt Graphs 的应用程序时,有一些差异需要考虑。
- QML 导入语句
- CMake 模块包含
- qmake 模块包含
- 小部件应用程序创建
- 需要使用 OpenGL 后端
- 已移除的类
- 已移除的 API
- 更改的 API
QML 导入语句
Qt DataVisualization 中的导入语句
import QtDataVisualization
需要改为
import QtGraphs
用于 Qt Graphs。
CMake 模块包含
Qt DataVisualization 中的包含
find_package(Qt6 REQUIRED COMPONENTS DataVisualization)
target_link_libraries(mytarget PRIVATE Qt6::DataVisualization)
需要改为
find_package(Qt6 REQUIRED COMPONENTS Graphs)
target_link_libraries(mytarget PRIVATE Qt6::Graphs)
用于 Qt Graphs。
qmake 模块包含
Qt DataVisualization 中的包含
QT += datavisualization
需要改为
QT += graphs
用于 Qt Graphs。
小部件应用程序创建
只需像这样创建您的窗口小部件应用程序
QGuiApplication app(argc, argv); Q3DScatter scatter; scatter.setFlags(scatter.flags() ^ Qt::FramelessWindowHint);
您应该这样创建它
QApplication app(argc, argv); Q3DScatter scatter; scatter.setMinimumSize(QSize(256, 256));
需要使用 OpenGL 后端
不再需要强制使用 OpenGL 后端
qputenv("QSG_RHI_BACKEND", "opengl");
Qt Graphs 使用 Qt Quick 3D 进行渲染,因此支持在运行平台上的本地渲染后端。
已移除的类
- Q3DCamera
- Q3DLight
- Q3DObject
已移除的 API
- hasContext
- shadowsSupported
- reflection
- reflectivity
更改的 API
- optimizationHint
- renderingMode
- renderToImage
- ColorGradient 和 ColorGradientStop
- ThemeColor
- Data APIs
- Camera APIs
- 枚举
optimizationHint
Legacy
现在是 QtDataVisualization 中 OptimizationDefault
模式。 Default
使用实例化,并且应适用于所有支持它的目标。
renderingMode
RenderDirectToBackground_NoClear
已被删除,因为在 Qt 6 中的 QtDataVisualization 已经是过期的。
renderToImage
renderToImage
现在返回 QSharedPointer<QQuickItemGrabResult>
而不是 QImage
,并且不再接受 msaaSamples
作为参数。
ColorGradient 和 ColorGradientStop
ColorGradient
现在是 Gradient
,而 ColorGradientStop
是 GradientStop
。
ThemeColor
ThemeColor
现在是 Color
。
数据APIs
不再需要使用new
创建数据数组。例如,在QtDataVisualization创建条形图数据时,操作方式如下
QBarDataRow *data = new QBarDataRow; *data << 1.0f << 3.0f << 7.5f << 5.0f << 2.2f;
现在,操作方式如下
QBarDataRow data; data << 1.0f << 3.0f << 7.5f << 5.0f << 2.2f; series->dataProxy()->addRow(data);
摄像头APIs
由于Q3DCamera已被删除,相关的函数已经移动。现在可以在AbstractGraph3D中找到cameraPreset, cameraTargetPosition, cameraXRotation, cameraYRotation, cameraZoomLevel, wrapCameraXRotation, 和 wrapCameraYRotation
。
枚举
所有枚举都转换为局部枚举,例如QAbstract3DGraph::ShadowQualityLow
已经转换为QAbstract3DGraph::ShadowQuality::Low
。
© 2024 Qt公司。本文件包含的文档贡献享有其各自所有者的版权。本文件中的文档是根据由自由软件基金会发布的