Auf dieser Seite

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:

QHeightMapSurfaceDataProxy und QItemModelSurfaceDataProxy

Eigenschaften

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

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.