QSurfaceDataProxy Class

Die Klasse QSurfaceDataProxy ist der Datenproxy für ein 3D-Oberflächendiagramm. Mehr...

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

QHeightMapSurfaceDataProxy und QItemModelSurfaceDataProxy

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)

Ausführliche Beschreibung

Ein Oberflächendaten-Proxy verwaltet oberflächenbezogene Daten in Zeilen. Hierfür stellt er zwei Hilfstypedefs zur Verfügung: QtDataVisualization::QSurfaceDataArray und QtDataVisualization::QSurfaceDataRow. QSurfaceDataArray ist eine QList, die die Zeilen steuert. QSurfaceDataRow ist eine QList, die QSurfaceDataItem Objekte enthält. Für weitere Informationen darüber, wie die Daten an den Proxy übergeben werden, siehe den Beispielcode in der Q3DSurface Dokumentation.

Alle Zeilen müssen die gleiche Anzahl von Elementen haben.

QSurfaceDataProxy übernimmt das Eigentum an allen QSurfaceDataRow Objekten, die ihm übergeben werden, ob direkt oder in einem QSurfaceDataArray Container. Um Zeilenzeiger für Oberflächendaten zu verwenden, um Daten nach dem Hinzufügen des Arrays zum Proxy direkt zu ändern, muss das entsprechende Signal ausgegeben werden, um den Graphen zu aktualisieren.

Um eine sinnvolle Oberfläche zu erstellen, muss der x-Wert jedes aufeinanderfolgenden Elements in allen Zeilen entweder aufsteigend oder absteigend in der gesamten Zeile sein. In ähnlicher Weise muss der z-Wert jedes aufeinanderfolgenden Elements in allen Spalten entweder auf- oder absteigend in der gesamten Spalte sein.

Hinweis: Derzeit werden nur Flächen mit geraden Zeilen und Spalten vollständig unterstützt. Jede Zeile mit Elementen, die nicht genau den gleichen z-Wert haben, oder jede Spalte mit Elementen, die nicht genau den gleichen x-Wert haben, werden möglicherweise falsch beschnitten, wenn die gesamte Fläche nicht vollständig in die sichtbaren x- oder z-Achsenbereiche passt.

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

Hinweis: In einigen Umgebungen werden Flächen mit vielen sichtbaren Scheitelpunkten möglicherweise nicht gerendert, weil sie die vom Grafiktreiber unterstützte Anzahl von Scheitelpunkten pro Zeichnung überschreiten. Dies ist hauptsächlich ein Problem auf 32-Bit- und OpenGL ES2-Plattformen.

Siehe auch Qt Data Visualization Datenbehandlung.

Dokumentation der Eigenschaften

[read-only] columnCount : const int

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

Zugriffsfunktionen:

int columnCount() const

Benachrichtigungssignal:

void columnCountChanged(int count)

[read-only] rowCount : const int

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

Zugriffsfunktionen:

int rowCount() const

Benachrichtigungssignal:

void rowCountChanged(int count)

[read-only] series : QSurface3DSeries* const

Diese Eigenschaft enthält die Serie, mit der dieser Proxy verbunden ist.

Zugriffsfunktionen:

QSurface3DSeries *series() const

Benachrichtigungssignal:

void seriesChanged(QSurface3DSeries *series)

Member Function Dokumentation

[explicit] QSurfaceDataProxy::QSurfaceDataProxy(QObject *parent = nullptr)

Konstruiert QSurfaceDataProxy mit der angegebenen parent.

[virtual noexcept] QSurfaceDataProxy::~QSurfaceDataProxy()

Löscht den Oberflächendaten-Proxy.

int QSurfaceDataProxy::addRow(QSurfaceDataRow *row)

Fügt die neue Zeile row an das Ende eines Arrays an. Die neue Zeile muss die gleiche Anzahl von 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 neue rows am Ende eines Arrays hinzu. Die neuen Zeilen müssen die gleiche Anzahl von 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 ausgegeben, wenn das Datenfeld zurückgesetzt wird. Wenn der Inhalt des gesamten Arrays geändert wird, ohne resetArray() aufzurufen, muss dieses Signal ausgegeben werden, um den Graphen zu aktualisieren.

void QSurfaceDataProxy::insertRow(int rowIndex, QSurfaceDataRow *row)

Fügt die neue Zeile row in rowIndex ein. Wenn rowIndex gleich der Array-Größe ist, werden die Zeilen am Ende des Arrays hinzugefügt. Die neue Zeile muss die gleiche Anzahl von Spalten haben wie die Zeilen im ursprünglichen Array.

void QSurfaceDataProxy::insertRows(int rowIndex, const QSurfaceDataArray &rows)

Fügt neue rows in rowIndex ein. Wenn rowIndex gleich der Array-Größe ist, werden die Zeilen am Ende des Arrays hinzugefügt. Das neue rows muss die gleiche Anzahl von Spalten haben wie die Zeilen im ursprünglichen 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 und der y-Wert die Spalte an. Das Element ist garantiert nur bis zum nächsten Aufruf gültig, bei dem die Daten geändert werden.

const QSurfaceDataItem *QSurfaceDataProxy::itemAt(int rowIndex, int columnIndex) const

Gibt den Zeiger auf das Element an der durch rowIndex und columnIndex angegebenen Position zurück. Er ist garantiert nur bis zum nächsten Aufruf gültig, bei dem Daten geändert werden.

[signal] void QSurfaceDataProxy::itemChanged(int rowIndex, int columnIndex)

Dieses Signal wird ausgegeben, wenn sich das Element an der durch rowIndex und columnIndex angegebenen Position ändert. Wenn das Element im Array geändert wird, ohne setItem() aufzurufen, muss dieses Signal ausgegeben werden, um den Graphen zu aktualisieren.

void QSurfaceDataProxy::removeRows(int rowIndex, int removeCount)

Entfernt die durch removeCount angegebene Anzahl von Zeilen, beginnend mit der Position rowIndex. Der Versuch, Zeilen über das Ende des Arrays hinaus zu entfernen, führt zu nichts.

void QSurfaceDataProxy::resetArray(QSurfaceDataArray *newArray)

Übernimmt das Eigentum an dem Array newArray. Löscht das bestehende Array, wenn sich das neue Array von ihm unterscheidet. Wenn die Arrays gleich sind, löst diese Funktion lediglich das Signal arrayReset() aus.

Die Übergabe eines Null-Arrays löscht das alte Array und erzeugt ein neues leeres Array. Alle Zeilen in newArray müssen die gleiche Länge haben.

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

Dieses Signal wird ausgegeben, wenn die durch count angegebene Anzahl von Zeilen ab der Position startIndex hinzugefügt wird. Wenn dem Array Zeilen hinzugefügt werden, ohne addRow() oder addRows() aufzurufen, muss dieses Signal ausgegeben werden, um den Graphen zu aktualisieren.

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

Dieses Signal wird ausgegeben, wenn die durch count angegebene Anzahl von Zeilen ab der Position startIndex geändert wird. Wenn Zeilen im Array geändert werden, ohne setRow() oder setRows() aufzurufen, muss dieses Signal ausgegeben werden, um den Graphen zu aktualisieren.

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

Dieses Signal wird ausgegeben, wenn die durch count angegebene Anzahl von Zeilen an der Position startIndex eingefügt wird.

Wenn Zeilen in das Array eingefügt werden, ohne insertRow() oder insertRows() aufzurufen, muss dieses Signal ausgegeben werden, um den Graphen zu aktualisieren.

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

Dieses Signal wird ausgegeben, wenn die durch count angegebene Anzahl von Zeilen ab der Position startIndex entfernt wird.

Der Index ist die aktuelle Array-Größe, wenn die Zeilen vom Ende des Arrays entfernt wurden. Wenn Zeilen aus dem Array entfernt werden, ohne removeRows() aufzurufen, muss dieses Signal ausgegeben werden, um den Graphen 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 steht für die Zeile und der y-Wert für 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 bestehende Zeile, indem es die Zeile an der Position rowIndex durch die neue Zeile ersetzt, die durch row angegeben wird. Die neue Zeile kann dieselbe sein wie die bereits auf rowIndex gespeicherte Zeile. Die neue Zeile muss dieselbe Anzahl von Spalten haben wie die Zeile, die sie ersetzt.

void QSurfaceDataProxy::setRows(int rowIndex, const QSurfaceDataArray &rows)

Ändert bestehende Zeilen, indem es die Zeilen ab der Position rowIndex durch die neuen Zeilen ersetzt, die durch rows angegeben werden. Die Zeilen im Array rows können dieselben sein wie die vorhandenen Zeilen, die bereits unter rowIndex gespeichert sind. Die neuen Zeilen müssen die gleiche Anzahl von 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.

© 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.