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つずつあります。ビジュアライズされたデータは、固定された場所にあると仮定されます。

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)

通知シグナル:

void primarySubViewportChanged(const QRect &subViewport)

secondarySubViewport : QRect

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

セカンダリビューポートは、いくつかのビジュアライゼーションで 2D スライスビューを描画するために使用されます。明示的に設定されていない場合は、QRect に等しくなります。isSlicingActive() がtrue の場合は、viewport に等しくなります。

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

アクセス関数:

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

通知シグナル:

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 : const 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 になります。

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