このページでは

Qt Graphs Qt DataVisualizationからの移行

Qt DataVisualizationとQt Graphs のAPIおよび機能は、ほぼ変更されていません。ただし、アプリケーションをQt DataVisualizationからQt Graphs へ移行する際には、以下の違いに留意する必要があります:

  • QMLのimport文
  • 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 の場合。

ウィジェットアプリケーションの作成

ウィジェットアプリケーションでグラフを作成するには、コードを以下のように変更してください:

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

  • hasContext
  • shadowsSupported
  • reflection
  • reflectivity

変更されたAPI

  • 最適化のヒント
  • レンダリングモード
  • renderToImage
  • ColorGradient および ColorGradientStop
  • ThemeColor
  • データ API
  • カメラAPI
  • テーマAPI
  • 列挙型

optimizationHint

Legacy は、QtDataVisualization の `OptimizationDefault ` に相当するモードになりました。`Default ` はインスタンス化を使用しており、これをサポートするすべてのターゲットで使用する必要があります。

renderingMode

RenderDirectToBackground_NoClear は、Qt 6のQtDataVisualizationですでに非推奨となっていたため、削除されました。

renderToImage

renderToImage は、QImage の代わりにQSharedPointer<QQuickItemGrabResult> を返すようになり、msaaSamples をパラメータとして受け付けなくなりました。

ColorGradient および ColorGradientStop

ColorGradient は、Gradient およびColorGradientStop GradientStop に変更されました。

ThemeColor

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` です。

© 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.