Auf dieser Seite

QSurfaceDataProxy Class

Die Klasse „QSurfaceDataProxy“ ist der Daten-Proxy für einen 3D-Oberflächengraphen. Mehr...

Header: #include <QSurfaceDataProxy>
CMake: find_package(Qt6 REQUIRED COMPONENTS DataVisualization)
target_link_libraries(mytarget PRIVATE Qt6::DataVisualization)
qmake: QT += datavisualization
Seit: QtDataVisualization 1.0
In QML: SurfaceDataProxy
Erbt von: QAbstractDataProxy
Vererbt an:

QHeightMapSurfaceDataProxy und QItemModelSurfaceDataProxy

Status: Veraltet

Diese Klasse ist veraltet. Wir raten dringend davon ab, sie in neuem Code zu verwenden.

Eigenschaften

Öffentliche Funktionen

QSurfaceDataProxy(QObject *parent = nullptr)
virtual ~QSurfaceDataProxy()
int addRow(QSurfaceDataRow *row)
int addRows(const QSurfaceDataArray &rows)
const QSurfaceDataArray *array() const
int columnCount() const
void insertRow(int rowIndex, QSurfaceDataRow *row)
void insertRows(int rowIndex, const QSurfaceDataArray &rows)
const QSurfaceDataItem *itemAt(const QPoint &position) const
const QSurfaceDataItem *itemAt(int rowIndex, int columnIndex) const
void removeRows(int rowIndex, int removeCount)
void resetArray(QSurfaceDataArray *newArray)
int rowCount() const
QSurface3DSeries *series() const
void setItem(const QPoint &position, const QSurfaceDataItem &item)
void setItem(int rowIndex, int columnIndex, const QSurfaceDataItem &item)
void setRow(int rowIndex, QSurfaceDataRow *row)
void setRows(int rowIndex, const QSurfaceDataArray &rows)

Signale

void arrayReset()
void columnCountChanged(int count)
void itemChanged(int rowIndex, int columnIndex)
void rowCountChanged(int count)
void rowsAdded(int startIndex, int count)
void rowsChanged(int startIndex, int count)
void rowsInserted(int startIndex, int count)
void rowsRemoved(int startIndex, int count)
void seriesChanged(QSurface3DSeries *series)

Detaillierte Beschreibung

Ein Oberflächen-Daten-Proxy verarbeitet oberflächenbezogene Daten in Zeilen. Hierfür stellt er zwei Hilfs-Typdefinitionen bereit: `QtDataVisualization::QSurfaceDataArray` und `QtDataVisualization::QSurfaceDataRow`. ` QSurfaceDataArray ` ist ein ` QList `, der die Zeilen verwaltet. ` QSurfaceDataRow ` ist ein ` QList `, der ` QSurfaceDataItem `-Objekte enthält. Weitere Informationen dazu, wie die Daten an den Proxy übergeben werden, finden Sie im Beispielcode in der Dokumentation zu „ Q3DSurface “.

Alle Zeilen müssen die gleiche Anzahl von 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 Oberflächen-Datenzeiger zu verwenden und Daten nach dem Hinzufügen des Arrays zum Proxy direkt zu ändern, muss das entsprechende Signal ausgelöst 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 aufweisen, oder jede Spalte mit Elementen, die nicht genau denselben x-Wert aufweisen, kann möglicherweise falsch beschnitten werden, wenn die gesamte Oberfläche nicht vollständig in die sichtbaren Bereiche der x- oder z-Achse passt.

Hinweis: Oberflächen mit weniger als zwei Zeilen oder Spalten gelten nicht als gültige Oberflächen und werden nicht gerendert.

Hinweis: In einigen Umgebungen werden Oberflächen mit vielen sichtbaren Eckpunkten möglicherweise nicht gerendert, da sie die vom Grafiktreiber unterstützte Anzahl an Eckpunkten pro Zeichnungsvorgang überschreiten. Dies ist vor allem auf 32-Bit- und OpenGL ES2-Plattformen ein Problem.

Siehe auch „Qt Data Visualization -Datenverarbeitung“.

Dokumentation zu den Eigenschaften

[read-only] columnCount : int

Diese Eigenschaft enthält die Anzahl der Spalten im Datenarray.

Zugriffsfunktionen:

int columnCount() const

Benachrichtigungssignal:

void columnCountChanged(int count)

[read-only] rowCount : int

Diese Eigenschaft enthält die Anzahl der Zeilen im Datenarray.

Zugriffsfunktionen:

int rowCount() const

Benachrichtigungssignal:

void rowCountChanged(int 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`.

[virtual noexcept] QSurfaceDataProxy::~QSurfaceDataProxy()

Löscht den Proxy für die Oberflächendaten.

int QSurfaceDataProxy::addRow(QSurfaceDataRow *row)

Fügt die neue Zeile „ row “ am Ende eines Arrays hinzu. 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.

int QSurfaceDataProxy::addRows(const 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.

const QSurfaceDataArray *QSurfaceDataProxy::array() const

Gibt den Zeiger auf das Datenarray 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(int 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(int rowIndex, const 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(const 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. Das Element ist garantiert nur bis zum nächsten Aufruf gültig, der die Daten ändert.

const QSurfaceDataItem *QSurfaceDataProxy::itemAt(int rowIndex, int 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 die Daten verändert.

[signal] void QSurfaceDataProxy::itemChanged(int rowIndex, int 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(int rowIndex, int 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 Auswirkungen.

void QSurfaceDataProxy::resetArray(QSurfaceDataArray *newArray)

Übernimmt die Verantwortung für das Array „ newArray “. Löscht das vorhandene Array, wenn sich das neue Array davon unterscheidet. Sind die Arrays identisch, löst diese Funktion lediglich das Signal „ arrayReset()“ aus.

Wird ein Null-Array übergeben, wird das alte Array gelöscht und ein neues leeres Array erstellt. Alle Zeilen in ` newArray ` müssen dieselbe Länge haben.

[signal] void QSurfaceDataProxy::rowsAdded(int startIndex, int count)

Dieses Signal wird ausgelöst, wenn die durch ` count ` angegebene Anzahl von Zeilen beginnend an der Position ` startIndex` hinzugefügt wird. 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(int startIndex, int count)

Dieses Signal wird ausgelöst, wenn die durch ` count ` angegebene Anzahl von Zeilen ab der Position ` startIndex` geändert wird. Werden Zeilen im Array geändert, ohne dass ` setRow()` oder ` setRows()` aufgerufen wird, muss dieses Signal ausgelöst werden, um das Diagramm zu aktualisieren.

[signal] void QSurfaceDataProxy::rowsInserted(int startIndex, int 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(int startIndex, int count)

Dieses Signal wird ausgelöst, wenn die durch ` count ` angegebene Anzahl von Zeilen beginnend an der Position ` startIndex` entfernt wird.

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(const QPoint &position, const 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(int rowIndex, int columnIndex, const QSurfaceDataItem &item)

Ändert ein einzelnes Element an der durch „ rowIndex “ und „ columnIndex “ angegebenen Position in das Element „ item “.

void QSurfaceDataProxy::setRow(int 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 identisch sein. Die neue Zeile muss dieselbe Anzahl an Spalten aufweisen wie die Zeile, die sie ersetzt.

void QSurfaceDataProxy::setRows(int rowIndex, const 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 übereinstimmen. Die neuen Zeilen müssen dieselbe Anzahl an Spalten haben wie die Zeilen, die sie ersetzen.

Verwandte Nicht-Mitglieder

QSurfaceDataArray

Eine Liste von Zeigern auf „ QSurfaceDataRow “-Objekte.

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.