QSurfaceDataProxy Class
Die Klasse „QSurfaceDataProxy“ ist der Datenproxy für einen 3D-Oberflächengrafen. Mehr...
| Header: | #include <QSurfaceDataProxy> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Graphs) target_link_libraries(mytarget PRIVATE Qt6::Graphs) |
| qmake: | QT += graphs |
| In QML: | SurfaceDataProxy |
| Erbt von: | QAbstractDataProxy |
| Vererbt an: |
- Liste aller Mitglieder, einschließlich geerbter Mitglieder
- QSurfaceDataProxy ist Teil von „Qt Graphs “ – C++-Klassen für 3D.
Eigenschaften
- columnCount : qsizetype
- rowCount : qsizetype
- series : QSurface3DSeries*
Öffentliche Funktionen
| QSurfaceDataProxy(QObject *parent = nullptr) | |
| virtual | ~QSurfaceDataProxy() override |
| qsizetype | addRow(QSurfaceDataRow row) |
| qsizetype | addRows(QSurfaceDataArray rows) |
| qsizetype | columnCount() const |
| void | insertRow(qsizetype rowIndex, QSurfaceDataRow row) |
| void | insertRows(qsizetype rowIndex, QSurfaceDataArray rows) |
| const QSurfaceDataItem & | itemAt(QPoint position) const |
| const QSurfaceDataItem & | itemAt(qsizetype rowIndex, qsizetype columnIndex) const |
| void | removeRows(qsizetype rowIndex, qsizetype removeCount) |
| void | resetArray() |
| void | resetArray(QSurfaceDataArray newArray) |
| qsizetype | rowCount() const |
| QSurface3DSeries * | series() const |
| void | setItem(QPoint position, QSurfaceDataItem item) |
| void | setItem(qsizetype rowIndex, qsizetype columnIndex, QSurfaceDataItem item) |
| void | setRow(qsizetype rowIndex, QSurfaceDataRow row) |
| void | setRows(qsizetype rowIndex, QSurfaceDataArray rows) |
Signale
| void | arrayReset() |
| void | columnCountChanged(qsizetype count) |
| void | itemChanged(qsizetype rowIndex, qsizetype columnIndex) |
| void | rowCountChanged(qsizetype count) |
| void | rowsAdded(qsizetype startIndex, qsizetype count) |
| void | rowsChanged(qsizetype startIndex, qsizetype count) |
| void | rowsInserted(qsizetype startIndex, qsizetype count) |
| void | rowsRemoved(qsizetype startIndex, qsizetype count) |
| void | seriesChanged(QSurface3DSeries *series) |
Zugehörige Nicht-Mitglieder
Ausführliche Beschreibung
Ein Surface-Daten-Proxy verarbeitet Surface-bezogene Daten in Zeilen. Hierfür stellt er zwei Hilfs-Typaliase bereit: QtGraphs::QSurfaceDataArray und QtGraphs::QSurfaceDataRow. QSurfaceDataArray ist ein „ QList “, der die Zeilen verwaltet. QSurfaceDataRow ist ein „ QList “, der Objekte vom Typ „ QSurfaceDataItem “ enthält. Weitere Informationen dazu, wie die Daten an den Proxy übergeben werden, finden Sie im Beispielcode in der Dokumentation zu „ Q3DSurfaceWidgetItem “. Da Daten in Serien gespeichert werden, muss vor der Verwendung dieser Funktionen für den Datensatz eine mit dem Proxy verknüpfte Serie erstellt werden.
Alle Zeilen müssen die gleiche Anzahl an Elementen aufweisen.
QSurfaceDataProxy übernimmt die Eigentümerschaft an allen „ QSurfaceDataRow “-Objekten, die an ihn übergeben werden, sei es direkt oder in einem „ QSurfaceDataArray “-Container. Um Zeilenzeiger der Oberflächendaten zu verwenden und die Daten nach dem Hinzufügen des Arrays zum Proxy direkt zu ändern, muss das entsprechende Signal ausgesendet werden, um den Graphen zu aktualisieren.
Um eine sinnvolle Oberfläche zu erzeugen, muss der x-Wert jedes aufeinanderfolgenden Elements in allen Zeilen über die gesamte Zeile hinweg entweder aufsteigend oder absteigend sein. Ebenso muss der z-Wert jedes aufeinanderfolgenden Elements in allen Spalten über die gesamte Spalte hinweg entweder aufsteigend oder absteigend sein.
Hinweis: Derzeit werden nur Oberflächen mit geraden Zeilen und Spalten vollständig unterstützt. Jede Zeile mit Elementen, die nicht genau denselben z-Wert haben, oder jede Spalte mit Elementen, die nicht genau denselben x-Wert haben, kann möglicherweise falsch beschnitten werden, wenn die gesamte Oberfläche nicht vollständig in die sichtbaren x- oder z-Achsenbereiche passt.
Hinweis: Flächen mit weniger als zwei Zeilen oder Spalten werden als Linien gerendert.
Hinweis: In manchen Umgebungen werden Oberflächen mit vielen sichtbaren Scheitelpunkten möglicherweise nicht gerendert, da sie die vom Grafiktreiber unterstützte maximale Scheitelpunktanzahl pro Zeichnungsvorgang überschreiten. Dies ist vor allem auf 32-Bit- und OpenGL-ES2-Plattformen ein Problem.
Siehe auch „Qt Graphs -Datenverarbeitung mit 3D“.
Dokumentation zu den Eigenschaften
[read-only] columnCount : qsizetype
Diese Eigenschaft enthält die Anzahl der Spalten im Datenarray.
Zugriffsfunktionen:
| qsizetype | columnCount() const |
Benachrichtigungssignal:
| void | columnCountChanged(qsizetype count) |
[read-only] rowCount : qsizetype
Diese Eigenschaft enthält die Anzahl der Zeilen im Datenarray.
Zugriffsfunktionen:
| qsizetype | rowCount() const |
Benachrichtigungssignal:
| void | rowCountChanged(qsizetype count) |
[read-only] series : QSurface3DSeries*
Diese Eigenschaft enthält die Serie, an die dieser Proxy angehängt ist.
Zugriffsfunktionen:
| QSurface3DSeries * | series() const |
Benachrichtigungssignal:
| void | seriesChanged(QSurface3DSeries *series) |
Dokumentation der Mitgliedsfunktionen
[explicit] QSurfaceDataProxy::QSurfaceDataProxy(QObject *parent = nullptr)
Erstellt ein `QSurfaceDataProxy`-Objekt mit dem angegebenen ` parent`.
[override virtual noexcept] QSurfaceDataProxy::~QSurfaceDataProxy()
Löscht den Proxy der Oberflächendaten.
qsizetype QSurfaceDataProxy::addRow(QSurfaceDataRow row)
Fügt die neue Zeile row am Ende eines Arrays ein. Die neue Zeile muss dieselbe Anzahl an Spalten haben wie die Zeilen im ursprünglichen Array.
Gibt den Index der hinzugefügten Zeile zurück.
qsizetype QSurfaceDataProxy::addRows(QSurfaceDataArray rows)
Fügt am Ende eines Arrays neue Zeilen „ rows “ hinzu. Die neuen Zeilen müssen dieselbe Anzahl an Spalten haben wie die Zeilen im ursprünglichen Array.
Gibt den Index der ersten hinzugefügten Zeile zurück.
[signal] void QSurfaceDataProxy::arrayReset()
Dieses Signal wird ausgelöst, wenn das Datenarray zurückgesetzt wird. Wenn der Inhalt des gesamten Arrays geändert wird, ohne dass die Funktion „ resetArray()“ aufgerufen wird, muss dieses Signal ausgelöst werden, um die Grafik zu aktualisieren.
void QSurfaceDataProxy::insertRow(qsizetype rowIndex, QSurfaceDataRow row)
Fügt die neue Zeile „ row “ in „ rowIndex “ ein. Wenn „ rowIndex “ der Größe des Arrays entspricht, werden die Zeilen am Ende des Arrays angehängt. Die neue Zeile muss dieselbe Anzahl an Spalten haben wie die Zeilen im ursprünglichen Array.
void QSurfaceDataProxy::insertRows(qsizetype rowIndex, QSurfaceDataArray rows)
Fügt das neue Array „ rows “ in das Array „ rowIndex “ ein. Wenn „ rowIndex “ der Größe des Arrays entspricht, werden die Zeilen am Ende des Arrays angehängt. Das neue Array „ rows “ muss dieselbe Anzahl an Spalten haben wie das ursprüngliche Array.
const QSurfaceDataItem &QSurfaceDataProxy::itemAt(QPoint position) const
Gibt den Zeiger auf das Element an der Position „ position “ zurück. Der x-Wert von „ position “ gibt die Zeile an, der y-Wert die Spalte. Die Gültigkeit des Elements ist nur bis zum nächsten Aufruf gewährleistet, der Daten verändert.
const QSurfaceDataItem &QSurfaceDataProxy::itemAt(qsizetype rowIndex, qsizetype columnIndex) const
Gibt den Zeiger auf das Element an der Position zurück, die durch rowIndex und columnIndex angegeben wird. Es wird garantiert, dass dieser Zeiger nur bis zum nächsten Aufruf gültig ist, der Daten ändert.
[signal] void QSurfaceDataProxy::itemChanged(qsizetype rowIndex, qsizetype columnIndex)
Dieses Signal wird ausgelöst, wenn sich das Element an der durch „ rowIndex “ und „ columnIndex “ angegebenen Position ändert. Wird das Element im Array geändert, ohne dass „ setItem()“ aufgerufen wird, muss dieses Signal ausgelöst werden, um die Grafik zu aktualisieren.
void QSurfaceDataProxy::removeRows(qsizetype rowIndex, qsizetype removeCount)
Entfernt die durch ` removeCount ` angegebene Anzahl von Zeilen, beginnend an der Position ` rowIndex`. Der Versuch, Zeilen jenseits des Endes des Arrays zu entfernen, hat keine Auswirkung.
void QSurfaceDataProxy::resetArray()
Löscht das vorhandene Array und löst das Signal „ arrayReset()“ aus.
void QSurfaceDataProxy::resetArray(QSurfaceDataArray newArray)
* Legt das Array aus newArray fest. Wenn das neue Array mit dem * bestehenden identisch ist, löst diese Funktion lediglich das Signal „ arrayReset()“ aus.
[signal] void QSurfaceDataProxy::rowsAdded(qsizetype startIndex, qsizetype count)
Dieses Signal wird ausgelöst, wenn die durch ` count ` angegebene Anzahl von Zeilen hinzugefügt wird, beginnend an der Position ` startIndex`. Werden Zeilen zum Array hinzugefügt, ohne dass ` addRow()` oder ` addRows()` aufgerufen wird, muss dieses Signal ausgelöst werden, um das Diagramm zu aktualisieren.
[signal] void QSurfaceDataProxy::rowsChanged(qsizetype startIndex, qsizetype count)
Dieses Signal wird ausgelöst, wenn die durch ` count ` angegebene Anzahl von Zeilen geändert wird, beginnend an der Position ` startIndex`. Wenn Zeilen im Array geändert werden, ohne dass ` setRow()` oder ` setRows()` aufgerufen wird, muss dieses Signal ausgelöst werden, um die Grafik zu aktualisieren.
[signal] void QSurfaceDataProxy::rowsInserted(qsizetype startIndex, qsizetype count)
Dieses Signal wird ausgelöst, wenn die durch ` count ` angegebene Anzahl von Zeilen an der Position ` startIndex` eingefügt wird.
Werden Zeilen in das Array eingefügt, ohne dass insertRow() oder insertRows() aufgerufen wird, muss dieses Signal ausgelöst werden, um das Diagramm zu aktualisieren.
[signal] void QSurfaceDataProxy::rowsRemoved(qsizetype startIndex, qsizetype count)
Dieses Signal wird ausgelöst, wenn die durch ` count ` angegebene Anzahl von Zeilen entfernt wird, beginnend an der Position ` startIndex`.
Der Index entspricht der aktuellen Array-Größe, wenn die Zeilen vom Ende des Arrays entfernt wurden. Werden Zeilen aus dem Array entfernt, ohne dass removeRows() aufgerufen wird, muss dieses Signal ausgelöst werden, um das Diagramm zu aktualisieren.
void QSurfaceDataProxy::setItem(QPoint position, QSurfaceDataItem item)
Ändert ein einzelnes Element an der Position position in das Element item. Der x-Wert von position gibt die Zeile an, der y-Wert die Spalte.
void QSurfaceDataProxy::setItem(qsizetype rowIndex, qsizetype columnIndex, QSurfaceDataItem item)
Ändert ein einzelnes Element an der durch „ rowIndex “ und „ columnIndex “ angegebenen Position in das Element „ item “.
void QSurfaceDataProxy::setRow(qsizetype rowIndex, QSurfaceDataRow row)
Ändert eine vorhandene Zeile, indem die Zeile an der Position rowIndex durch die neue Zeile ersetzt wird, die durch row angegeben ist. Die neue Zeile kann mit der bereits unter rowIndex gespeicherten Zeile übereinstimmen. Die neue Zeile muss dieselbe Anzahl an Spalten haben wie die Zeile, die sie ersetzt.
void QSurfaceDataProxy::setRows(qsizetype rowIndex, QSurfaceDataArray rows)
Ändert vorhandene Zeilen, indem die Zeilen ab der Position rowIndex durch die neuen Zeilen ersetzt werden, die durch rows angegeben sind. Die Zeilen im Array rows können mit den bereits unter rowIndex gespeicherten Zeilen identisch sein. Die neuen Zeilen müssen dieselbe Anzahl an Spalten haben wie die Zeilen, die sie ersetzen.
Verwandte Nicht-Mitglieder
[alias] QSurfaceDataArray
Eine Liste von Zeigern auf Objekte vom Typ „ QSurfaceDataRow “.
[alias] QSurfaceDataRow
Eine Liste von „ QSurfaceDataItem “-Objekten.
© 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.