Auf dieser Seite

Q3DScene Class

Die Klasse „Q3DScene“ enthält eine Beschreibung der visualisierten 3D-Szene. Mehr dazu...

Header: #include <Q3DScene>
CMake: find_package(Qt6 REQUIRED COMPONENTS DataVisualization)
target_link_libraries(mytarget PRIVATE Qt6::DataVisualization)
qmake: QT += datavisualization
Seit: QtDataVisualization 1.0
In QML: Scene3D
Erbt von: QObject
Status: Veraltet

Diese Klasse ist veraltet. Wir raten dringend davon ab, sie in neuem Code zu verwenden.

Eigenschaften

Öffentliche Funktionen

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

Signale

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)

Statische öffentliche Mitglieder

Detaillierte Beschreibung

Die 3D-Szene enthält eine einzige aktive Kamera und eine einzige aktive Lichtquelle. Es wird davon ausgegangen, dass sich die visualisierten Daten an einem festen Ort befinden.

Die 3D-Szene verwaltet außerdem den Viewport, in dem die Visualisierung gerendert wird, den primären Subviewport innerhalb des Viewports, in dem sich die Hauptansicht der 3D-Datenvisualisierung befindet, sowie den sekundären Subviewport, in dem sich die 2D-Schnittansicht der Daten befindet. Die Größe der Unteransichten wird standardmäßig über die Methode „ Q3DScene “ angepasst. Um dieses Verhalten zu überschreiben, müssen Sie sowohl auf das Signal „ viewportChanged()“ als auch auf das Signal „ slicingActiveChanged()“ abhören und die Größe der Unteransichten entsprechend neu berechnen.

Außerdem verfügt die Szene über ein Flag, mit dem verfolgt werden kann, ob die sekundäre 2D-Schnittansicht derzeit aktiv ist oder nicht.

Hinweis: Nicht alle Visualisierungen unterstützen die sekundäre 2D-Slicing-Ansicht.

Dokumentation der Eigenschaften

activeCamera : Q3DCamera*

Diese Eigenschaft enthält die derzeit aktive Kamera in der 3D-Szene.

Wenn ein neues Q3DCamera-Objekt festgelegt wird, wird es automatisch als untergeordnetes Element der Szene hinzugefügt.

Zugriffsfunktionen:

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

Notifier-Signal:

void activeCameraChanged(Q3DCamera *camera)

activeLight : Q3DLight*

Diese Eigenschaft enthält die derzeit aktive Lichtquelle in der 3D-Szene.

Wenn ein neues Q3DLight-Objekt festgelegt wird, wird es automatisch als untergeordnetes Element der Szene hinzugefügt.

Zugriffsfunktionen:

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

Notifier-Signal:

void activeLightChanged(Q3DLight *light)

devicePixelRatio : float

Diese Eigenschaft enthält das Gerätepixelverhältnis, das bei der Zuordnung von Eingabekoordinaten zu Pixelkoordinaten verwendet wird.

Zugriffsfunktionen:

float devicePixelRatio() const
void setDevicePixelRatio(float pixelRatio)

Benachrichtigungssignal:

void devicePixelRatioChanged(float pixelRatio)

graphPositionQuery : QPoint

Diese Eigenschaft enthält die Koordinaten der Benutzereingabe, die von der Szene als Abfrage der Grafikposition verarbeitet werden sollen.

Wenn diese Eigenschaft auf einen anderen Wert als „ invalidSelectionPoint()“ gesetzt ist, versucht der Graph, eine Graphposition mit den angegebenen Koordinaten innerhalb des primären Ansichtsfensters abzugleichen. Nach dem Renderdurchlauf wird diese Eigenschaft wieder auf ihren Standardzustand „ invalidSelectionPoint()“ zurückgesetzt. Die abgefragte Graphposition kann nach dem nächsten Renderdurchlauf über die Eigenschaft „ QAbstract3DGraph::queriedGraphPosition “ ausgelesen werden.

Da es keine einheitlich korrekte 3D-Koordinate gibt, die einer bestimmten Bildschirmposition entspricht, erfolgen die Abfragen aus Gründen der Konsistenz stets an den Innenseiten eines unsichtbaren Kastens, der das Diagramm umgibt.

Hinweis: BeiBalkendiagrammen sind Abfragen der Diagrammposition nur auf der Diagrammbodenebene zulässig.

Zugriffsfunktionen:

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

Notifier-Signal:

void graphPositionQueryChanged(const QPoint &position)

Siehe auch „ QAbstract3DGraph::queriedGraphPosition “.

primarySubViewport : QRect

Diese Eigenschaft enthält das aktuelle Rechteck des Teilansichtsbereichs innerhalb des Ansichtsbereichs, auf den die primäre Ansicht der Datenvisualisierung ausgerichtet ist.

Wenn „ isSlicingActive()“ auf „ false “ gesetzt ist, entspricht der primäre Teilansichtsbereich „ viewport()“. Wenn „ isSlicingActive()“ auf „ true “ gesetzt ist und der primäre Teilansichtsbereich nicht explizit festgelegt wurde, beträgt er ein Fünftel von „ viewport()“.

Hinweis: Wenn `primarySubViewport` größer als der Viewport oder außerhalb desselbenfestgelegt wird , wird die Größe des Viewports entsprechend angepasst.

Zugriffsfunktionen:

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

Notifier-Signal:

void primarySubViewportChanged(const QRect &subViewport)

secondarySubViewport : QRect

Diese Eigenschaft enthält das Rechteck des sekundären Ansichtsfensters innerhalb des Ansichtsfensters.

Der sekundäre Ansichtsbereich wird in einigen Visualisierungen zum Zeichnen der 2D-Schnittansicht verwendet. Wenn er nicht explizit festgelegt wurde, entspricht er „ QRect “. Wenn „ isSlicingActive()“ den Wert „ true “ hat, entspricht er „ viewport “.

Hinweis: Ist der sekundäre Unteransichtsbereich größer als der Ansichtsbereich oder liegt er außerhalb desselben, wird der Ansichtsbereich entsprechend angepasst.

Zugriffsfunktionen:

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

Notifier-Signal:

void secondarySubViewportChanged(const QRect &subViewport)

secondarySubviewOnTop : bool

Diese Eigenschaft legt fest, ob die 2D-Schnittansicht oder die 3D-Ansicht im Vordergrund dargestellt wird.

Zugriffsfunktionen:

bool isSecondarySubviewOnTop() const
void setSecondarySubviewOnTop(bool isSecondaryOnTop)

Benachrichtigungssignal:

void secondarySubviewOnTopChanged(bool isSecondaryOnTop)

selectionQueryPosition : QPoint

Diese Eigenschaft enthält die Koordinaten der Benutzereingabe, die von der Szene als Auswahl verarbeitet werden soll.

Wenn diese Eigenschaft auf einen anderen Wert als „ invalidSelectionPoint()“ gesetzt ist, versucht das Diagramm, ein Datenelement, eine Achsenbeschriftung oder ein benutzerdefiniertes Element an den angegebenen Koordinaten innerhalb des primären Ansichtsfensters auszuwählen. Nach dem Rendering-Durchlauf wird die Eigenschaft wieder auf ihren Standardzustand „ invalidSelectionPoint()“ zurückgesetzt.

Zugriffsfunktionen:

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

Notifier-Signal:

void selectionQueryPositionChanged(const QPoint &position)

Siehe auch „ QAbstract3DGraph::selectedElement “.

slicingActive : bool

Diese Eigenschaft gibt an, ob die 2D-Slicing-Ansicht derzeit aktiv ist.

Wenn „ true “ gesetzt ist, muss für „ QAbstract3DGraph::selectionMode “ entweder „ QAbstract3DGraph::SelectionRow “ oder „ QAbstract3DGraph::SelectionColumn “ auf eine gültige Auswahl gesetzt sein.

Hinweis: Nicht alle Visualisierungen unterstützen die 2D-Slicing-Ansicht.

Zugriffsfunktionen:

bool isSlicingActive() const
void setSlicingActive(bool isSlicing)

Benachrichtigungssignal:

void slicingActiveChanged(bool isSlicingActive)

[read-only] viewport : QRect

Diese Eigenschaft enthält eine schreibgeschützte Eigenschaft, die das aktuelle Ansichtsfenster-Rechteck angibt, auf das die gesamte 3D-Darstellung ausgerichtet ist.

Zugriffsfunktionen:

QRect viewport() const

Notifier-Signal:

void viewportChanged(const QRect &viewport)

Dokumentation der Member-Funktionen

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

Erstellt eine einfache Szene mit einer Lichtquelle und einer Kamera. Der optionale Parameter „ parent “ kann angegeben werden und wird dann an den Konstruktor von „ QObject “ übergeben.

[virtual noexcept] Q3DScene::~Q3DScene()

Löscht die 3D-Szene und alle darin enthaltenen Objekte.

[static] QPoint Q3DScene::invalidSelectionPoint()

Gibt einen „ QPoint “ zurück, der eine ungültige Auswahlposition anzeigt.

bool Q3DScene::isPointInPrimarySubView(const QPoint &point)

Gibt zurück, ob sich der angegebene Punkt „ point “ innerhalb der primären Unteransicht befindet oder nicht. Gibt „ true “ zurück, wenn sich der Punkt innerhalb der primären Unteransicht befindet.

Hinweis: Wenn sich Unteransichten überlagern und der angegebene „ point “ in beiden enthalten ist, ist das Ergebnis nur dann „ true “, wenn die primäre Unteransicht oberste Ebene hat.

bool Q3DScene::isPointInSecondarySubView(const QPoint &point)

Gibt zurück, ob sich der angegebene Punkt „ point “ innerhalb der sekundären Unteransicht befindet oder nicht. Gibt „ true “ zurück, wenn sich der Punkt innerhalb der sekundären Unteransicht befindet.

Hinweis: Wenn sich Unteransichten überlagern und der angegebene Punkt „ point “ in beiden liegt, ist das Ergebnis nur dann „ true “, wenn sich die sekundäre Unteransicht oben befindet.

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