Q3DScene Class

Die Klasse Q3DScene liefert eine Beschreibung der zu visualisierenden 3D-Szene. Mehr...

Kopfzeile: #include <Q3DScene>
CMake: find_package(Qt6 REQUIRED COMPONENTS DataVisualization)
target_link_libraries(mytarget PRIVATE Qt6::DataVisualization)
qmake: QT += datavisualization
Since: QtDataVisualization 1.0
In QML: Scene3D
Vererbt: QObject

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 verfolgt auch das Ansichtsfenster, in dem die Visualisierung gerendert wird, das primäre Unteransichtfenster innerhalb des Ansichtsfensters, in dem sich die Hauptansicht der 3D-Datenvisualisierung befindet, und das sekundäre Unteransichtfenster, in dem sich die 2D-Sliced-Ansicht der Daten befindet. Die Größe der Subviewports wird standardmäßig durch das Q3DScene geändert. Um das Größenänderungsverhalten zu überschreiben, müssen Sie auf die Signale viewportChanged() und slicingActiveChanged() hören und die Subviewports entsprechend neu berechnen.

Außerdem verfügt die Szene über ein Flag zur Verfolgung, ob die sekundäre 2D-Slicing-Ansicht gerade 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 gesetzt wird, wird es automatisch als Kind der Szene hinzugefügt.

Zugriffsfunktionen:

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

Benachrichtigungssignal:

void activeCameraChanged(Q3DCamera *camera)

activeLight : Q3DLight*

Diese Eigenschaft enthält das derzeit aktive Licht in der 3D-Szene.

Wenn ein neues Q3DLight Objekt gesetzt wird, wird es automatisch als Kind der Szene hinzugefügt.

Zugriffsfunktionen:

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

Melder-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)

Melder-Signal:

void devicePixelRatioChanged(float pixelRatio)

graphPositionQuery : QPoint

Diese Eigenschaft enthält die Koordinaten für die Benutzereingabe, die von der Szene als Graphpositionsabfrage verarbeitet werden soll.

Wenn diese Eigenschaft auf einen anderen Wert als invalidSelectionPoint() gesetzt wird, versucht der Graph, eine Graphposition mit den angegebenen Koordinaten innerhalb des primären Ansichtsfensters abzugleichen. Nach dem Rendering-Durchgang wird diese Eigenschaft auf den Standardwert invalidSelectionPoint() zurückgesetzt. Die abgefragte Diagrammposition kann nach dem nächsten Rendering-Durchgang aus der Eigenschaft QAbstract3DGraph::queriedGraphPosition gelesen werden.

Es gibt keine einzige korrekte 3D-Koordinate, die einer bestimmten Bildschirmposition entspricht. Um konsistent zu sein, werden die Abfragen immer an den Innenseiten einer unsichtbaren Box durchgeführt, die das Diagramm umgibt.

Hinweis: Bei Balkendiagrammen ist die Abfrage der Diagrammposition nur auf der Ebene der Diagrammböden möglich.

Zugriffsfunktionen:

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

Melder-Signal:

void graphPositionQueryChanged(const QPoint &position)

Siehe auch QAbstract3DGraph::queriedGraphPosition.

primarySubViewport : QRect

Diese Eigenschaft enthält das aktuelle Sub-Viewport-Rechteck innerhalb des Viewports, auf das die primäre Ansicht der Datenvisualisierung ausgerichtet ist.

Wenn isSlicingActive() gleich false ist, ist das primäre Unteransichtsfenster gleich viewport(). Wenn isSlicingActive() true ist und das primäre Unteransichtsfenster nicht explizit festgelegt wurde, ist es ein Fünftel von viewport().

Hinweis: Wird primarySubViewport größer als das Ansichtsfenster oder außerhalb des Ansichtsfensters gesetzt, wird die Größe des Ansichtsfensters entsprechend angepasst.

Zugriffsfunktionen:

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

Benachrichtigungssignal:

void primarySubViewportChanged(const QRect &subViewport)

secondarySubViewport : QRect

Diese Eigenschaft enthält das sekundäre Ansichtsfensterrechteck innerhalb des Ansichtsfensters.

Das sekundäre Ansichtsfenster wird in einigen Visualisierungen zum Zeichnen der 2D-Slice-Ansicht verwendet. Wenn sie nicht explizit festgelegt wurde, ist sie gleich QRect. Wenn isSlicingActive() gleich true ist, ist sie gleich viewport.

Hinweis: Wenn das sekundäre Sub-Viewport größer ist als das Viewport oder außerhalb davon liegt, wird die Größe des Viewports entsprechend angepasst.

Zugriffsfunktionen:

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

Benachrichtigungssignal:

void secondarySubViewportChanged(const QRect &subViewport)

secondarySubviewOnTop : bool

Diese Eigenschaft bestimmt, ob die 2D-Slicing-Ansicht oder die 3D-Ansicht oben gezeichnet wird.

Zugriffsfunktionen:

bool isSecondarySubviewOnTop() const
void setSecondarySubviewOnTop(bool isSecondaryOnTop)

Melder-Signal:

void secondarySubviewOnTopChanged(bool isSecondaryOnTop)

selectionQueryPosition : QPoint

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

Wenn diese Eigenschaft auf einen anderen Wert als invalidSelectionPoint() gesetzt wird, versucht das Diagramm, ein Datenelement, eine Achsenbeschriftung oder ein benutzerdefiniertes Element an den angegebenen Koordinaten im primären Ansichtsfenster auszuwählen. Nach dem Renderingdurchgang wird die Eigenschaft auf den Standardwert invalidSelectionPoint() zurückgesetzt.

Zugriffsfunktionen:

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

Benachrichtigungssignal:

void selectionQueryPositionChanged(const QPoint &position)

Siehe auch QAbstract3DGraph::selectedElement.

slicingActive : bool

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

Falls true, QAbstract3DGraph::selectionMode muss 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)

Melder-Signal:

void slicingActiveChanged(bool isSlicingActive)

[read-only] viewport : const QRect

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

Zugriffsfunktionen:

QRect viewport() const

Benachrichtigungssignal:

void viewportChanged(const QRect &viewport)

Member Function Dokumentation

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

Konstruiert eine einfache Szene mit einem Licht und einer Kamera darin. Ein optionaler parent Parameter kann angegeben werden und wird dann an den QObject Konstruktor übergeben.

[virtual noexcept] Q3DScene::~Q3DScene()

Zerstört die 3D-Szene und alle darin enthaltenen Objekte.

[static] QPoint Q3DScene::invalidSelectionPoint()

Gibt eine QPoint zurück, die eine ungültige Auswahlposition angibt.

bool Q3DScene::isPointInPrimarySubView(const QPoint &point)

Gibt zurück, ob sich der angegebene 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 die Unteransichten übereinander liegen und der angegebene point sich in beiden befindet, ist das Ergebnis true nur, wenn die primäre Unteransicht oben liegt.

bool Q3DScene::isPointInSecondarySubView(const QPoint &point)

Gibt zurück, ob sich der angegebene 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 die Unteransichten übereinander liegen und der angegebene point sich in beiden befindet, ist das Ergebnis true nur, wenn die sekundäre Unteransicht oben liegt.

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