このページでは

Q3DScene Class

Q3DScene クラスは、可視化されている 3D シーンの記述を提供します。詳細...

ヘッダー: #include <Q3DScene>
CMake: find_package(Qt6 REQUIRED COMPONENTS DataVisualization)
target_link_libraries(mytarget PRIVATE Qt6::DataVisualization)
qmake: QT += datavisualization
バージョン: QtDataVisualization 1.0
QMLでの導入時期: Scene3D
継承元: QObject
ステータス: 非推奨

このクラスは非推奨です。新しいコードでの使用は強く推奨しません。

プロパティ

パブリック関数

Q3DScene(QObject *parent = nullptr)
virtual ~Q3DScene()
Q3DCamera *activeCamera() const
Q3DLight *activeLight() const
float devicePixelRatio() const
QPoint graphPositionQuery() const
bool isPointInPrimarySubView(const QPoint &point)
bool isPointInSecondarySubView(const QPoint &point)
bool isSecondarySubviewOnTop() const
bool isSlicingActive() const
QRect primarySubViewport() const
QRect secondarySubViewport() const
QPoint selectionQueryPosition() const
void setActiveCamera(Q3DCamera *camera)
void setActiveLight(Q3DLight *light)
void setDevicePixelRatio(float pixelRatio)
void setGraphPositionQuery(const QPoint &point)
void setPrimarySubViewport(const QRect &primarySubViewport)
void setSecondarySubViewport(const QRect &secondarySubViewport)
void setSecondarySubviewOnTop(bool isSecondaryOnTop)
void setSelectionQueryPosition(const QPoint &point)
void setSlicingActive(bool isSlicing)
QRect viewport() const

シグナル

void activeCameraChanged(Q3DCamera *camera)
void activeLightChanged(Q3DLight *light)
void devicePixelRatioChanged(float pixelRatio)
void graphPositionQueryChanged(const QPoint &position)
void primarySubViewportChanged(const QRect &subViewport)
void secondarySubViewportChanged(const QRect &subViewport)
void secondarySubviewOnTopChanged(bool isSecondaryOnTop)
void selectionQueryPositionChanged(const QPoint &position)
void slicingActiveChanged(bool isSlicingActive)
void viewportChanged(const QRect &viewport)

静的パブリックメンバー

詳細な説明

3D シーンには、1 つのアクティブなカメラと 1 つのアクティブな光源が含まれます。可視化されるデータは、固定された位置にあるものと想定されます。

また、3D シーンは、可視化レンダリングが行われるビューポート、メインの 3D データ可視化ビューが存在するビューポート内のプライマリ・サブビューポート、およびデータの 2D スライスビューが存在するセカンダリ・サブビューポートも追跡します。 サブビューポートのサイズ変更は、デフォルトではQ3DScene によって行われます。このサイズ変更の挙動を上書きするには、viewportChanged()およびslicingActiveChanged()の両方のシグナルをリッスンし、それに応じてサブビューポートを再計算する必要があります。

また、シーンには、セカンダリ2Dスライスビューが現在アクティブであるかどうかを追跡するためのフラグがあります。

注: すべての可視化がセカンダリ 2D スライシングビューに対応しているわけではありません 。

プロパティのドキュメント

activeCamera : Q3DCamera*

このプロパティには、3Dシーン内で現在アクティブなカメラが格納されます。

新しい Q3DCamera オブジェクトが設定されると、自動的にシーンの子として追加されます。

アクセス関数:

Q3DCamera *activeCamera() const
void setActiveCamera(Q3DCamera *camera)

通知シグナル:

void activeCameraChanged(Q3DCamera *camera)

activeLight : Q3DLight*

このプロパティには、3Dシーン内で現在アクティブなライトが保持されます。

新しい Q3DLight オブジェクトが設定されると、そのオブジェクトは自動的にシーンの子として追加されます。

アクセス関数:

Q3DLight *activeLight() const
void setActiveLight(Q3DLight *light)

通知シグナル:

void activeLightChanged(Q3DLight *light)

devicePixelRatio : float

このプロパティには、入力座標をピクセル座標に変換する際に使用されるデバイスピクセル比が格納されます。

アクセス関数:

float devicePixelRatio() const
void setDevicePixelRatio(float pixelRatio)

通知信号:

void devicePixelRatioChanged(float pixelRatio)

graphPositionQuery : QPoint

このプロパティには、シーンによってグラフの位置クエリとして処理されるべきユーザー入力の座標が格納されます。

このプロパティがinvalidSelectionPoint()以外の値に設定されている場合、グラフはプライマリビューポート内の指定された座標にグラフ上の位置を照合しようとします。レンダリングパス終了後、このプロパティはinvalidSelectionPoint()というデフォルトの状態に戻ります。照合されたグラフ上の位置は、次のレンダリングパス終了後にQAbstract3DGraph::queriedGraphPosition プロパティから読み取ることができます。

特定の画面位置に対応する唯一の正しい3D座標は存在しないため、一貫性を保つために、クエリは常にグラフを囲む見えないボックスの内側を基準に行われます。

注:棒 グラフでは、グラフの床面レベルでのみグラフ位置のクエリが可能です。

アクセス関数:

QPoint graphPositionQuery() const
void setGraphPositionQuery(const QPoint &point)

通知シグナル:

void graphPositionQueryChanged(const QPoint &position)

QAbstract3DGraph::queriedGraphPositionも参照してください 。

primarySubViewport : QRect

このプロパティは、データ可視化のプライマリビューが対象となっているビューポート内の、現在のサブビューポートの矩形を保持します。

isSlicingActive()がfalse の場合、プライマリサブビューポートはviewport()と等しくなります。isSlicingActive()がtrue であり、かつプライマリサブビューポートが明示的に設定されていない場合、プライマリサブビューポートはviewport()の5分の1になります。

注: primarySubViewportをビューポートより大きく、またはビューポートの外側に設定すると 、ビューポートのサイズがそれに応じて変更されます。

アクセス関数:

QRect primarySubViewport() const
void setPrimarySubViewport(const QRect &primarySubViewport)

Notifierシグナル:

void primarySubViewportChanged(const QRect &subViewport)

secondarySubViewport : QRect

このプロパティは、ビューポート内のセカンダリビューポートの矩形を保持します。

セカンダリビューポートは、一部の可視化において2Dスライスビューを描画するために使用されます。明示的に設定されていない場合、QRect と等しくなります。isSlicingActive()の値がtrue である場合、viewport と等しくなります。

注: セカンダリサブビューポートがビューポートより大きい場合 、またはビューポートの外側にある場合 、ビューポートはそれに応じてサイズ変更されます。

アクセス関数:

QRect secondarySubViewport() const
void setSecondarySubViewport(const QRect &secondarySubViewport)

Notifierシグナル:

void secondarySubViewportChanged(const QRect &subViewport)

secondarySubviewOnTop : bool

このプロパティは、2Dスライスビューと3Dビューのどちらが上に描画されるかを決定します。

アクセス関数:

bool isSecondarySubviewOnTop() const
void setSecondarySubviewOnTop(bool isSecondaryOnTop)

通知シグナル:

void secondarySubviewOnTopChanged(bool isSecondaryOnTop)

selectionQueryPosition : QPoint

このプロパティには、シーンによって選択として処理されるべきユーザー入力の座標が格納されます。

このプロパティがinvalidSelectionPoint()以外の値に設定されている場合、グラフはプライマリビューポート内の指定された座標にあるデータ項目、軸ラベル、またはカスタム項目を選択しようとします。レンダリング処理が完了すると、このプロパティはデフォルト状態のinvalidSelectionPoint()に戻ります。

アクセス関数:

QPoint selectionQueryPosition() const
void setSelectionQueryPosition(const QPoint &point)

通知シグナル:

void selectionQueryPositionChanged(const QPoint &position)

関連項目: QAbstract3DGraph::selectedElement 。

slicingActive : bool

このプロパティは、2Dスライシングビューが現在アクティブであるかどうかを示します。

true の場合、QAbstract3DGraph::selectionMode には、QAbstract3DGraph::SelectionRow またはQAbstract3DGraph::SelectionColumn のいずれかが有効な選択として設定されている必要があります。

注: すべての可視化が2Dスライシングビューに対応しているわけではありません 。

アクセス関数:

bool isSlicingActive() const
void setSlicingActive(bool isSlicing)

通知シグナル:

void slicingActiveChanged(bool isSlicingActive)

[read-only] viewport : QRect

このプロパティは、すべての 3D レンダリングの対象となる現在のビューポート矩形を含む、読み取り専用のプロパティです。

アクセス関数:

QRect viewport() const

通知シグナル:

void viewportChanged(const QRect &viewport)

メンバ関数のドキュメント

[explicit] Q3DScene::Q3DScene(QObject *parent = nullptr)

1つのライトと1つのカメラを含む基本的なシーンを構築します。オプションのparent パラメータを指定することができ、その場合はQObject のコンストラクタに渡されます。

[virtual noexcept] Q3DScene::~Q3DScene()

3Dシーンと、その中に含まれるすべてのオブジェクトを削除します。

[static] QPoint Q3DScene::invalidSelectionPoint()

無効な選択位置を示すQPoint を返します。

bool Q3DScene::isPointInPrimarySubView(const QPoint &point)

指定されたpoint がプライマリサブビュー内に存在するかどうかを返します。その点がプライマリサブビュー内にある場合は、true を返します。

注: サブビューが重なり合っており、指定されたpoint が両方のサブビュー内に存在する場合 、プライマリサブビューが最前面にある場合にのみ、結果はtrue となります。

bool Q3DScene::isPointInSecondarySubView(const QPoint &point)

指定されたpoint がセカンダリサブビュー内にあるかどうかを返します。その点がセカンダリサブビュー内にある場合は、true を返します。

注: サブビューが重なっている場合で 、指定されたpoint が両方のサブビューの内部にあるとき、結果がtrue となるのは、セカンダリサブビューが上にある場合のみです。

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