Qt Graphs Qt DataVisualization からの移行
Qt DataVisualization とQt Graphs の API と機能はほとんど変更されていません。しかし、アプリケーションを Qt DataVisualization からQt Graphs に移行する際に考慮しなければならない違いがいくつかあります:
- QML import ステートメント
- CMakeモジュールのインクルード
- qmake モジュールのインクルード
- ウィジェットアプリケーションの作成
- OpenGLバックエンドの使用
- 削除されたクラス
- 削除されたAPI
- 変更されたAPI
QML インポート文
Qt DataVisualization.QML の import 文が次のように変更されました:
import QtDataVisualization
のインポート文が変更されました:
import QtGraphs
forQt 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)
forQt Graphs.
Qmake モジュールのインクルード
Qt DataVisualization: のインクルードが次のように変更されました:
QT += datavisualization
のインクルードが変更されました:
QT += graphs
forQt Graphs.
ウィジェットアプリケーションの作成
ウィジェットアプリケーションでグラフを作成するには、コードを
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);
OpenGLバックエンドの使用要件
Qt Graphs 3Dを使用するために、OpenGLバックエンドを使用する必要はありません:
// Remove this line qputenv("QSG_RHI_BACKEND", "opengl");
Qt Graphs はレンダリングに 3Dを使用しているため、実行するプラットフォームのネイティブ・レンダリング・バックエンドをサポートしています。Qt Quick
削除されたクラス
- Q3DCamera
- Q3DLight
- Q3DObject
- Q3DTheme
削除されたAPI
- ハズコンテキスト
- シャドウサポート
- リフレクション
- 反射率
変更されたAPI
- 最適化ヒント
- レンダリングモード
- レンダートゥイメージ
- ColorGradientおよびColorGradientStop
- テーマカラー
- データAPI
- カメラAPI
- テーマAPI
- 列挙型
最適化ヒント
Legacy
は QtDataVisualization で だったモードです。 はインスタンス化を使用するので、それをサポートするすべてのターゲットに使用する必要があります。OptimizationDefault
Default
レンダリングモード
RenderDirectToBackground_NoClear
は削除されました。Qt 6 の QtDataVisualization では既に廃止されていたからです。
renderToImage
renderToImage
が の代わりに を返すようになり、 をパラメータとして受け取らなくなりました。QImage
QSharedPointer<QQuickItemGrabResult>
msaaSamples
ColorGradient と ColorGradientStop
ColorGradient
が と になりました。Gradient
ColorGradientStop
GradientStop
テーマカラー
ThemeColor
は になりました。Color
データAPI
new
でデータ配列を作成する必要がなくなりました。例えば、Qt DataVisualization で棒グラフのデータを作成する場合、次のように行っていました:
// Qt DataVisualization approach. QBarDataRow *data = new QBarDataRow; *data << 1.0f << 3.0f << 7.5f << 5.0f << 2.2f;
現在はこのようになります:
// Qt Graphs approach. QBarDataRow data; data << 1.0f << 3.0f << 7.5f << 5.0f << 2.2f; series->dataProxy()->addRow(data);
カメラAPI
Q3DCamera が削除されたので、必要な関数は移動されました。cameraPreset, cameraTargetPosition, cameraXRotation, cameraYRotation, cameraZoomLevel, wrapCameraXRotation, and wrapCameraYRotation
はGraphsItem3D の一部となりました。
テーマAPI
Q3DThemeが削除され、2Dグラフと3Dグラフのテーマが統一されたので、Q3DThemeから必要な関数の一部が移動され、残りは代替のGraphsTheme 。lightColor, ambientLightStrength, lightStrength, and shadowStrength
は現在、GraphsItem3D 。
windowColor
backgroundColor
は、 が行っていたことを行うようになり、新しい関数 は、 が行っていた機能を置き換えるものです。windowColor
plotAreaBackgroundColor
backgroundColor
グラフ全体の一般的な配色はcolor scheme プロパティで制御され、系列色はtheme プロパティで制御されるようになりました。配色が明示的に設定されていない場合は、デスクトップのテーマ(明暗)に従います。
列挙型
Qt Graphs では、すべての列挙型はスコープされた列挙型として実装されています。例えば、Qt DataVisualization のQAbstract3DGraph::ShadowQualityLow
に対して、Qt Graphs の対応する列挙型はQtGraphs3D::ShadowQuality::Low
です。
© 2025 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.