Q3DScene Class

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

Kopfzeile: #include <Q3DScene>
CMake: find_package(Qt6 REQUIRED COMPONENTS Graphs)
target_link_libraries(mytarget PRIVATE Qt6::Graphs)
qmake: QT += graphs
In QML: Scene3D
Vererbt: QObject

Eigenschaften

Öffentliche Funktionen

Q3DScene(QObject *parent = nullptr)
virtual ~Q3DScene() override
qreal devicePixelRatio() const
QPoint graphPositionQuery() const
QPoint invalidSelectionPoint() const
bool isPointInPrimarySubView(QPoint point)
bool isPointInSecondarySubView(QPoint point)
bool isSecondarySubviewOnTop() const
bool isSlicingActive() const
QRect primarySubViewport() const
QRect secondarySubViewport() const
QPoint selectionQueryPosition() const
void setDevicePixelRatio(qreal pixelRatio)
void setGraphPositionQuery(QPoint point)
void setPrimarySubViewport(QRect primarySubViewport)
void setSecondarySubViewport(QRect secondarySubViewport)
void setSecondarySubviewOnTop(bool isSecondaryOnTop)
void setSelectionQueryPosition(QPoint point)
void setSlicingActive(bool isSlicing)
QRect viewport() const

Signale

void devicePixelRatioChanged(qreal pixelRatio)
void graphPositionQueryChanged(QPoint position)
void primarySubViewportChanged(QRect subViewport)
void secondarySubViewportChanged(QRect subViewport)
void secondarySubviewOnTopChanged(bool isSecondaryOnTop)
void selectionQueryPositionChanged(QPoint position)
void slicingActiveChanged(bool isSlicingActive)
void viewportChanged(QRect viewport)

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 das Rendering des Graphen erfolgt, das primäre Unteransichtfenster innerhalb des Ansichtsfensters, in dem sich die Hauptansicht des 3D-Graphen befindet, und das sekundäre Unteransichtfenster, in dem sich die 2D-Sliced-Ansicht der Daten befindet. Die Größe der Subviewports wird standardmäßig von Q3DScene bestimmt. Um das Größenänderungsverhalten außer Kraft zu setzen, müssen Sie auf die Signale viewportChanged() und slicingActiveChanged() hören und die Subviewports entsprechend neu kalkulieren.

Außerdem verfügt die Szene über ein Flag, mit dem man erkennen kann, ob die sekundäre 2D-Slicing-Ansicht gerade aktiv ist oder nicht.

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

Dokumentation der Eigenschaften

devicePixelRatio : qreal

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

Zugriffsfunktionen:

qreal devicePixelRatio() const
void setDevicePixelRatio(qreal pixelRatio)

Melder-Signal:

void devicePixelRatioChanged(qreal 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 Q3DGraphsWidgetItem::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(QPoint point)

Melder-Signal:

void graphPositionQueryChanged(QPoint position)

Siehe auch Q3DGraphsWidgetItem::queriedGraphPosition.

primarySubViewport : QRect

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

Wenn das primäre Unteransichtsfenster nicht explizit festgelegt wurde, entspricht es einem Fünftel von viewport().

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

Zugriffsfunktionen:

QRect primarySubViewport() const
void setPrimarySubViewport(QRect primarySubViewport)

Benachrichtigungssignal:

void primarySubViewportChanged(QRect subViewport)

secondarySubViewport : QRect

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

Das sekundäre Ansichtsfenster wird zum Zeichnen der 2D-Slice-Ansicht in einigen Diagrammen verwendet. Wenn es nicht explizit festgelegt wurde, entspricht es der Größe des Ansichtsfensters.

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

Zugriffsfunktionen:

QRect secondarySubViewport() const
void setSecondarySubViewport(QRect secondarySubViewport)

Melder-Signal:

void secondarySubViewportChanged(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(QPoint point)

Benachrichtigungssignal:

void selectionQueryPositionChanged(QPoint position)

Siehe auch Q3DGraphsWidgetItem::selectedElement.

slicingActive : bool

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

Bei true, Q3DGraphsWidgetItem::selectionMode muss entweder QtGraphs3D::SelectionFlag::Row oder QtGraphs3D::SelectionFlag::Column auf eine gültige Auswahl gesetzt sein.

Hinweis: Nicht alle Diagramme 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(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.

[override virtual noexcept] Q3DScene::~Q3DScene()

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

QPoint Q3DScene::invalidSelectionPoint() const

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

Hinweis: Getter-Funktion für die Eigenschaft invalidSelectionPoint.

bool Q3DScene::isPointInPrimarySubView(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(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.