Qt DataVisualization からの Qt Graphs への移行
Qt DataVisualization と Qt Graphs の API と機能はほとんど変更されていません。しかし、アプリケーションを Qt DataVisualization から Qt Graphs に移行する際に考慮しなければならない違いがいくつかあります:
- QML import ステートメント
- CMakeモジュールのインクルード
- qmake モジュールのインクルード
- ウィジェットアプリケーションの作成
- OpenGL バックエンドの使用
- 削除されたクラス
- 削除されたAPI
- 変更されたAPI
QML インポート文
Qt DataVisualization.QML の import 文が次のように変更されました:
import QtDataVisualization
の import 文が変更されました:
import QtGraphs
に変更されました。
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)
に変更されました。
Qmake モジュールのインクルード
Qt DataVisualization のインクルード:
QT += datavisualization
が変更されました:
QT += 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はレンダリングにQt Quick 3Dを使用し、実行するプラットフォームのネイティブなレンダリングバックエンドをサポートします。
削除されたクラス
- 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 DataVisualization のQAbstract3DGraph::ShadowQualityLow
に対応する Qt Graphs の enum はQtGraphs3D::ShadowQuality::Low
です。
©2024 The Qt Company Ltd. 本書に含まれるドキュメントの著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。