Surface3DNode QML Type
Beschreibt die Verwendung des Knotens „3D-Oberflächendiagramm“. Mehr...
| Import Statement: | import QtGraphs |
| Inherits: |
- Liste aller Mitglieder, einschließlich geerbter Mitglieder
- „Surface3DNode“ ist Teil der „Qt Graphs “-QML-Typen für 3D.
Eigenschaften
- aspectRatio : real
- axisX : Value3DAxis
- axisY : Value3DAxis
- axisZ : Value3DAxis
- customItemList : list<Custom3DItem>
- flipHorizontalGrid : bool
- gridLineType : Graphs3D.GridLineType
- horizontalAspectRatio : real
- labelMargin : real
- locale : locale
- margin : real
- optimizationHint : Graphs3D.OptimizationHint
- polar : bool
- queriedGraphPosition : vector3d
- radialLabelOffset : real
- selectedElement : Graphs3D.ElementType
- selectedSeries : Surface3DSeries
- selectionMode : Graphs3D.SelectionMode
- seriesList : list<Surface3DSeries>
- theme : GraphsTheme
Signale
- axisXChanged(ValueAxis3D axis)
- axisYChanged(ValueAxis3D axis)
- axisZChanged(ValueAxis3D axis)
- flipHorizontalGridChanged(bool flip)
- selectedSeriesChanged(Surface3DSeries series)
Methoden
- qsizetype addCustomItem(Custom3DItem item)
- void addSeries(Surface3DSeries series)
- void clearSelection()
- void doPicking(QPoint point)
- void doRayPicking(QVector3D origin, QVector3D direction)
- bool hasSeries(Abstract3DSeries series)
- void releaseCustomItem(Custom3DItem item)
- void removeCustomItem(Custom3DItem item)
- void removeCustomItemAt(vector3d position)
- void removeCustomItems()
- void removeSeries(Surface3DSeries series)
- Abstract3DAxis selectedAxis()
- Custom3DItem selectedCustomItem()
- qsizetype selectedCustomItemIndex()
- int selectedLabelIndex()
Ausführliche Beschreibung
Dieser Typ ermöglicht es Entwicklern, einen Surface-Graph-Knoten mit „ Qt Quick “ in 3D darzustellen.
Um diesen Typ zu verwenden, müssen Sie das Modul „ Qt Graphs “ importieren:
import QtGraphsDanach können Sie „Surface3DNode“ in Ihren QML-Dateien verwenden:
import QtQuick
import QtGraphs
View3D {
width: 640
height: 480
Surface3DNode {
width: parent.width
height: parent.height
Surface3DSeries {
itemLabelFormat: "Pop density at (@xLabel N, @zLabel E): @yLabel"
ItemModelSurfaceDataProxy {
itemModel: dataModel
// Mapping model roles to surface series rows, columns, and values.
rowRole: "longitude"
columnRole: "latitude"
yPosRole: "pop_density"
}
}
onTapped: {
// Disable the default input handler
unsetDefaultTapHandler()
// Implement own custom event handler
console.log("Custom tap event handler")
}
}
ListModel {
id: dataModel
ListElement{ longitude: "20"; latitude: "10"; pop_density: "4.75"; }
ListElement{ longitude: "21"; latitude: "10"; pop_density: "3.00"; }
ListElement{ longitude: "22"; latitude: "10"; pop_density: "1.24"; }
ListElement{ longitude: "23"; latitude: "10"; pop_density: "2.53"; }
ListElement{ longitude: "20"; latitude: "11"; pop_density: "2.55"; }
ListElement{ longitude: "21"; latitude: "11"; pop_density: "2.03"; }
ListElement{ longitude: "22"; latitude: "11"; pop_density: "3.46"; }
ListElement{ longitude: "23"; latitude: "11"; pop_density: "5.12"; }
ListElement{ longitude: "20"; latitude: "12"; pop_density: "1.37"; }
ListElement{ longitude: "21"; latitude: "12"; pop_density: "2.98"; }
ListElement{ longitude: "22"; latitude: "12"; pop_density: "3.33"; }
ListElement{ longitude: "23"; latitude: "12"; pop_density: "3.23"; }
ListElement{ longitude: "20"; latitude: "13"; pop_density: "4.34"; }
ListElement{ longitude: "21"; latitude: "13"; pop_density: "3.54"; }
ListElement{ longitude: "22"; latitude: "13"; pop_density: "1.65"; }
ListElement{ longitude: "23"; latitude: "13"; pop_density: "2.67"; }
}
}Siehe auch „ Surface3DSeries“ , „ ItemModelSurfaceDataProxy “, „ Bars3DNode “, „ Scatter3DNode “ und „Qt Graphs “ – C++-Klassen für 3D.
Dokumentation zu den Eigenschaften
aspectRatio : real
Das Skalierungsverhältnis im Diagramm zwischen der längsten Achse auf der horizontalen Ebene und der y-Achse. Der Standardwert ist „ 2.0 “.
Hinweis: Hat keine Auswirkungen auf „ Bars3D “.
Siehe auch „ horizontalAspectRatio “.
axisX : Value3DAxis
Die aktive x-Achse.
Wird keine Achse angegeben, wird eine temporäre Standardachse ohne Beschriftungen und mit einem sich automatisch anpassenden Bereich erstellt. Diese temporäre Achse wird gelöscht, wenn eine andere Achse explizit mit derselben Ausrichtung festgelegt wird.
axisY : Value3DAxis
Die aktive y-Achse.
Wird keine Achse angegeben, wird eine temporäre Standardachse ohne Beschriftungen und mit einem sich automatisch anpassenden Bereich erstellt. Diese temporäre Achse wird gelöscht, wenn eine andere Achse explizit auf dieselbe Ausrichtung gesetzt wird.
axisZ : Value3DAxis
Die aktive Z-Achse.
Wird keine Achse angegeben, wird eine temporäre Standardachse ohne Beschriftungen und mit einem sich automatisch anpassenden Bereich erstellt. Diese temporäre Achse wird gelöscht, wenn eine andere Achse explizit auf dieselbe Ausrichtung gesetzt wird.
customItemList : list<Custom3DItem>
Die Liste der „ Custom3DItem “-Elemente, die dem Diagramm hinzugefügt wurden. Das Diagramm übernimmt die Verantwortung für die hinzugefügten Elemente.
flipHorizontalGrid : bool
In einigen Anwendungsfällen wird das Raster der horizontalen Achse größtenteils von der Fläche überdeckt, sodass es sinnvoller sein kann, das Raster der horizontalen Achse oberhalb des Diagramms statt darunter darzustellen. Ein typischer Anwendungsfall hierfür ist die Darstellung von 2D-Spektrogrammen unter Verwendung der orthografischen Projektion mit einer Blickrichtung von oben nach unten.
Wenn „ false “ gesetzt ist, werden das horizontale Achsenraster und die Beschriftungen auf dem horizontalen Hintergrund des Diagramms gezeichnet. Wenn „ true “ gesetzt ist, werden das horizontale Achsenraster und die Beschriftungen auf der dem horizontalen Hintergrund gegenüberliegenden Seite des Diagramms gezeichnet. Die Standardeinstellung ist „ false “.
gridLineType : Graphs3D.GridLineType
Legt fest, ob der Typ der Gitterlinien „ Graphs3D.GridLineType.Shader “ oder „ Graphs3D.GridLineType.Geometry “ lautet.
Dieser Wert wirkt sich auf alle Gitterlinien aus.
Siehe auch „ Graphs3D.GridLineType “.
horizontalAspectRatio : real
Das Skalierungsverhältnis zwischen der x-Achse und der z-Achse im Diagramm. Der Wert „ 0.0 “ bedeutet eine automatische Skalierung entsprechend den Achsenbereichen. Die Standardeinstellung ist „ 0.0 “.
Hinweis: Hat keine Auswirkung auf „ Bars3DNode “, das die Skalierung in der horizontalen Ebene über die Eigenschaften „ barThickness “ und „ barSpacing “ steuert. Polardiagramme ignorieren diese Eigenschaft ebenfalls.
Siehe auch „ aspectRatio“ , „ polar “, „ Bars3DNode::barThickness “ und „ Bars3DNode::barSpacing “.
labelMargin : real
Diese Eigenschaft legt den Rand für die Platzierung der Achsenbeschriftungen fest.
Bei negativen Werten werden die Beschriftungen innerhalb des Zeichnungsbereichs platziert, bei positiven Werten außerhalb des Zeichnungsbereichs. Die automatische Drehung der Beschriftungen ist deaktiviert, wenn der Wert negativ ist. Standardwert ist 0.1
Siehe auch QAbstract3DAxis::labelAutoAngle.
locale : locale
Legt die für die Formatierung verschiedener Zahlenangaben verwendete Locale fest. Standardmäßig ist die Locale „ "C" “ eingestellt.
Siehe auch Value3DAxis::labelFormat.
margin : real
Der absolute Wert, der für den Abstand zwischen dem Rand des darstellbaren Diagrammbereichs und dem Rand des Diagrammhintergrunds verwendet wird.
Ist der Randwert negativ, werden die Ränder automatisch festgelegt und können je nach Größe der Elemente in der Reihe und dem Diagrammtyp variieren. Der Wert wird als Bruchteil des y-Achsenbereichs interpretiert, sofern die Seitenverhältnisse des Diagramms nicht gegenüber den Standardwerten geändert wurden. Der Standardwert ist „ -1.0 “.
Hinweis: Wenn für ein Streudiagramm ein kleinerer Rand als der automatisch ermittelte Randfestgelegt wird , kann es dazu kommen, dass sich die Streudiagrammelemente an den Rändern des Diagramms mit dem Diagrammhintergrund überlappen.
Hinweis: Bei Streu- und Flächendiagrammen werden die Positionen der Randbeschriftungen der Achsen angepasst, um eine Überlappung mit den Randbeschriftungen der benachbarten Achsen zu vermeiden, wenn der Rand im Vergleich zur Größe der Achsenbeschriftungen klein ist.
optimizationHint : Graphs3D.OptimizationHint
Legt fest, ob zur Optimierung der Darstellung der Standardmodus oder der Legacy-Modus verwendet wird.
Der Standardmodus nutzt instanziertes Rendering und bietet auf den meisten Systemen den vollen Funktionsumfang bei bester Leistung. Der statische Modus optimiert das Rendern des Diagramms und eignet sich ideal für große, unveränderliche Datensätze. Bei dynamischen Datenänderungen und Elementrotationen ist er langsamer. Die Auswahl wird nicht optimiert, daher ist die Verwendung des statischen Modus bei sehr großen Datensätzen nicht ratsam. Der Legacy-Modus rendert alle Elemente im Diagramm einzeln, ohne Instanzierung. Er sollte nur verwendet werden, wenn der Standardmodus nicht funktioniert, was dem Fall entspricht, dass das Zielsystem keine Instanzierung unterstützt. Standardwert ist „ Default “.
Hinweis: In manchen Umgebungen werden große Grafiken mit statischer Optimierung möglicherweise nicht gerendert, da alle Elemente mit einem einzigen Draw-Call gerendert werden und verschiedene Grafiktreiber unterschiedliche maximale Vertex-Anzahlen pro Call unterstützen. Dies ist vor allem auf 32-Bit- und OpenGL-ES2-Plattformen ein Problem. Um dieses Problem zu umgehen, wählen Sie ein Element-Mesh mit einer geringen Anzahl an Scheitelpunkten oder verwenden Sie das Punkt-Mesh.
Siehe auch Abstract3DSeries::mesh und Graphs3D.OptimizationHint.
polar : bool
Wenn true ist, werden die horizontalen Achsen in Polarkoordinaten umgewandelt. Die x-Achse wird zur Winkelachse und die z-Achse zur Radialachse. Der Polarmodus ist für Balkendiagramme nicht verfügbar.
Standardmäßig ist „ false “ eingestellt.
Siehe auch „ radialLabelOffset “.
queriedGraphPosition : vector3d [read-only]
Diese schreibgeschützte Eigenschaft enthält die aktuellsten Positionswerte des Diagramms entlang jeder Achse, die mit „ Scene3D::graphPositionQuery “ abgefragt wurden. Die Werte sind auf den Bereich [-1, 1] normiert. Liegt die abgefragte Position außerhalb der Diagrammgrenzen, spiegeln die Werte nicht die tatsächliche Position wider, sondern stellen stattdessen eine undefinierte Position außerhalb des Bereichs [-1, 1] dar. Der Wert bleibt undefiniert, bis eine Abfrage erfolgt.
Da es keine eindeutige 3D-Koordinate gibt, die einer bestimmten Bildschirmposition entspricht, werden die Abfragen aus Gründen der Konsistenz stets an den Innenseiten eines unsichtbaren Kastens durchgeführt, der das Diagramm umgibt.
Hinweis: Bei Balkendiagrammen kann die Diagrammposition nur auf Höhe des Diagrammbodens abgefragt werden, daher ist der y-Wert bei Balkendiagrammen immer Null, und gültige Abfragen können nur an Bildschirmpositionen erfolgen, die den Diagrammboden enthalten.
Siehe auch Scene3D::graphPositionQuery.
radialLabelOffset : real
Diese Eigenschaft legt den normierten horizontalen Versatz für die Achsenbeschriftungen der radialen Polachse fest. Der Wert „ 0.0 “ gibt an, dass die Beschriftungen neben der Winkelachsen-Gitterlinie bei 0° gezeichnet werden sollen. Der Wert „ 1.0 “ gibt an, dass die Beschriftungen an ihrer üblichen Stelle am Rand des Diagrammhintergrunds gezeichnet werden. Diese Eigenschaft wird ignoriert, wenn der Wert der Eigenschaft „polar“ „ false “ lautet. Der Standardwert ist „ 1.0 “.
Siehe auch „ polar “.
selectedElement : Graphs3D.ElementType [read-only]
Das im Diagramm ausgewählte Element.
Mit dieser Eigenschaft lässt sich der Typ des ausgewählten Elements abfragen. Der Typ bleibt gültig, bis im Diagramm eine neue Auswahl getroffen wird und das Signal „ selectedElementChanged “ ausgesendet wird.
Das Signal kann beispielsweise zur Implementierung einer benutzerdefinierten Eingabeverarbeitung verwendet werden, wie im Beispiel „Axis Handling“ gezeigt.
Siehe auch „ selectedLabelIndex()“, „ selectedAxis()“, „ selectedCustomItemIndex()“, „ selectedCustomItem()“, „ Bars3DNode::selectedSeries “, „ Scatter3DNode::selectedSeries “, „ Scene3D::selectionQueryPosition “ und „ Graphs3D.ElementType “.
selectedSeries : Surface3DSeries [read-only]
Die ausgewählte Serie oder null. Wenn für „ selectionMode “ das Flag „ MultiSeries “ gesetzt ist, enthält diese Eigenschaft die Serie, zu der der ausgewählte Punkt gehört.
selectionMode : Graphs3D.SelectionMode
Der aktive Auswahlmodus im Diagramm. Einer der Aufzählungswerte „ graphs3d.selectionflag “.
seriesList : list<Surface3DSeries> [default]
Diese Eigenschaft enthält die Reihen des Diagramms. Standardmäßig enthält diese Eigenschaft eine leere Liste. Um die Reihen festzulegen, verwenden Sie entweder die Funktion „ addSeries()“ oder definieren Sie sie als untergeordnete Elemente des Diagramms.
theme : GraphsTheme
Das aktive Thema der Grafik.
Siehe auch GraphsTheme.
Signal-Dokumentation
axisXChanged(ValueAxis3D axis)
Dieses Signal wird ausgelöst, wenn sich „ axisX “ in „ axis “ ändert.
Hinweis: Der entsprechende Handler lautet onAxisXChanged.
axisYChanged(ValueAxis3D axis)
Dieses Signal wird ausgelöst, wenn sich axisY in axis ändert.
Hinweis: Der zugehörige Handler lautet onAxisYChanged.
axisZChanged(ValueAxis3D axis)
Dieses Signal wird ausgelöst, wenn sich „ axisZ “ in „ axis “ ändert.
Hinweis: Der entsprechende Handler lautet onAxisZChanged.
flipHorizontalGridChanged(bool flip)
Dieses Signal wird ausgelöst, wenn sich „ flipHorizontalGrid “ in „ flip “ ändert.
Hinweis: Der entsprechende Handler lautet onFlipHorizontalGridChanged.
selectedSeriesChanged(Surface3DSeries series)
Dieses Signal wird ausgelöst, wenn sich „ selectedSeries “ in „ series “ ändert.
Hinweis: Der entsprechende Handler ist onSelectedSeriesChanged.
Methodendokumentation
qsizetype addCustomItem(Custom3DItem item)
Fügt dem Graphen ein „ Custom3DItem “ ( item ) hinzu. Der Graph übernimmt die Verantwortung für das hinzugefügte Element.
Gibt den Index des hinzugefügten Elements zurück, wenn das Hinzufügen erfolgreich war, -1, wenn versucht wurde, ein Null-Element hinzuzufügen, und den Index des Elements, wenn versucht wurde, ein bereits vorhandenes Element hinzuzufügen.
Siehe auch removeCustomItems(), removeCustomItem() und removeCustomItemAt().
void addSeries(Surface3DSeries series)
Fügt den „ series “ zum Diagramm hinzu.
Siehe auch GraphsNode::hasSeries().
void clearSelection()
Löscht die Auswahl aus allen zugehörigen Serien.
void doPicking(QPoint point)
Führt eine Auswahl anhand der Ansichtskoordinaten aus „ point “ für die Elemente des Graphen durch und wählt dabei das erste getroffene Element aus. Die Standard-Eingabeverarbeitung führt dies beim Empfang des „onTapped“-Ereignisses aus.
Siehe auch selectedElement.
void doRayPicking(QVector3D origin, QVector3D direction)
Führt eine Auswahl beginnend bei origin und in direction für die Elemente des Graphen durch und wählt dabei das erste gefundene Element aus.
Siehe auch selectedElement.
bool hasSeries(Abstract3DSeries series)
Gibt zurück, ob das „ series “ bereits zum Graphen hinzugefügt wurde.
void releaseCustomItem(Custom3DItem item)
Erlangt die Eigentumsrechte an „ item “ zurück und entfernt „ item “ aus dem Diagramm.
Hinweis: Wenn dasselbe Element wieder zum Grafikobjekt hinzugefügt wird, muss die Texturdatei neu festgelegt werden.
Siehe auch „ Custom3DItem::textureFile “.
void removeCustomItem(Custom3DItem item)
Entfernt das benutzerdefinierte „ item “. Löscht die ihm zugewiesenen Ressourcen.
void removeCustomItemAt(vector3d position)
Entfernt alle benutzerdefinierten Elemente unter position. Löscht die ihnen zugewiesenen Ressourcen.
void removeCustomItems()
Entfernt alle benutzerdefinierten Elemente. Löscht die ihnen zugewiesenen Ressourcen.
void removeSeries(Surface3DSeries series)
Entfernt den „ series “ aus dem Diagramm.
Siehe auch „ GraphsNode::hasSeries()“.
Abstract3DAxis selectedAxis()
Kann verwendet werden, um die ausgewählte Achse nach dem Empfang eines „ selectedElementChanged “-Signals mit einem beliebigen Label-Typ abzurufen. Die Auswahl gilt bis zum nächsten „ selectedElementChanged “-Signal.
Gibt die ausgewählte Achse oder „null“ zurück.
Siehe auch „ selectedElement “.
Custom3DItem selectedCustomItem()
Kann verwendet werden, um das ausgewählte benutzerdefinierte Element abzurufen, nachdem ein „ selectedElementChanged “-Signal vom Typ „ ElementType.CustomItem “ empfangen wurde. Das Eigentum an dem Element verbleibt beim Graphen. Die Auswahl ist bis zum nächsten „ selectedElementChanged “-Signal gültig.
Gibt das ausgewählte benutzerdefinierte Element oder null zurück.
Siehe auch „ selectedElement “.
qsizetype selectedCustomItemIndex()
Kann verwendet werden, um den Index des ausgewählten benutzerdefinierten Elements abzufragen, nachdem ein „ selectedElementChanged “-Signal vom Typ „ ElementType.CustomItem “ empfangen wurde. Die Auswahl gilt bis zum nächsten „ selectedElementChanged “-Signal.
Gibt den Index des ausgewählten benutzerdefinierten Elements oder -1 zurück.
Siehe auch „ selectedElement “.
int selectedLabelIndex()
Kann verwendet werden, um den Index der ausgewählten Beschriftung abzufragen, nachdem ein „ selectedElementChanged “-Signal mit einem beliebigen Beschriftungstyp empfangen wurde. Die Auswahl bleibt bis zum nächsten „ selectedElementChanged “-Signal gültig.
Gibt den Index des ausgewählten Labels oder -1 zurück.
Siehe auch „ selectedElement “.
© 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.