QSurfaceDataProxy Class

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

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

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 Oberflächendaten-Proxy verarbeitet oberflächenbezogene Daten in Zeilen. Hierfür stellt er zwei Hilfstypen zur Verfügung: QtGraphs::QSurfaceDataArray und QtGraphs::QSurfaceDataRow. QSurfaceDataArray ist ein QList, der die Zeilen kontrolliert. QSurfaceDataRow ist ein QList, der QSurfaceDataItem Objekte enthält. Weitere Informationen darüber, wie man die Daten in den Proxy einspeist, finden Sie im Beispielcode in der Dokumentation Q3DSurfaceWidgetItem. Da die Daten in Reihen gespeichert werden, ist es notwendig, eine Reihe zu erstellen, die mit dem Proxy verbunden ist, bevor diese Funktionen für den Datensatz verwendet werden.

Alle Reihen 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 Graphs Datenverarbeitung mit 3D.

Dokumentation der Eigenschaften

[read-only] columnCount : const qsizetype

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

Zugriffsfunktionen:

qsizetype columnCount() const

Benachrichtigungssignal:

void columnCountChanged(qsizetype count)

[read-only] rowCount : const qsizetype

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

Zugriffsfunktionen:

qsizetype rowCount() const

Benachrichtigungssignal:

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

[override virtual noexcept] QSurfaceDataProxy::~QSurfaceDataProxy()

Löscht den Oberflächendaten-Proxy.

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

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

[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(qsizetype 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(qsizetype rowIndex, 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(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(qsizetype rowIndex, qsizetype 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(qsizetype rowIndex, qsizetype 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(qsizetype rowIndex, qsizetype 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()

Löscht das vorhandene Array und löst das Signal arrayReset() aus.

void QSurfaceDataProxy::resetArray(QSurfaceDataArray newArray)

* Setzt das Array von newArray. Wenn das neue Array gleich dem * bestehenden ist, löst diese Funktion einfach das Signal arrayReset() aus.

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

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

Dieses Signal wird ausgegeben, wenn die durch count angegebene Anzahl von Zeilen geändert wird, beginnend an der Position startIndex. 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(qsizetype startIndex, qsizetype 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(qsizetype startIndex, qsizetype count)

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

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(QPoint position, 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(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 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 unter rowIndex gespeicherte Zeile. Die neue Zeile muss dieselbe Anzahl von Spalten haben wie die Zeile, die sie ersetzt.

void QSurfaceDataProxy::setRows(qsizetype rowIndex, 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

[alias] QSurfaceDataArray

Eine Liste von Zeigern auf QSurfaceDataRow Objekte.

[alias] 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.