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
QPoint | invalidSelectionPoint() |
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.