En esta página

QSurfaceDataProxy Class

La clase QSurfaceDataProxy es el proxy de datos para un gráfico de superficie 3D. Más...

Cabecera: #include <QSurfaceDataProxy>
CMake: find_package(Qt6 REQUIRED COMPONENTS Graphs)
target_link_libraries(mytarget PRIVATE Qt6::Graphs)
qmake: QT += graphs
En QML: SurfaceDataProxy
Hereda de: QAbstractDataProxy
Heredado por:

QHeightMapSurfaceDataProxy y QItemModelSurfaceDataProxy

Propiedades

Funciones públicas

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)

Señales

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)

Descripción detallada

Un proxy de datos de superficie maneja datos relacionados con la superficie en filas. Para ello proporciona dos alias de tipo auxiliar: QtGraphs::QSurfaceDataArray y QtGraphs::QSurfaceDataRow. QSurfaceDataArray es un QList que controla las filas. QSurfaceDataRow es un QList que contiene objetos QSurfaceDataItem. Para más información sobre cómo introducir los datos en el proxy, véase el código de ejemplo en la documentación de Q3DSurfaceWidgetItem. Dado que los datos se almacenan en series, es necesario crear una serie asociada al proxy antes de utilizar estas funciones para el conjunto de datos.

Todas las filas deben tener el mismo número de elementos.

QSurfaceDataProxy se apropia de todos los objetos QSurfaceDataRow que se le pasan, ya sea directamente o en un contenedor QSurfaceDataArray. Para utilizar punteros de fila de datos de superficie para modificar directamente los datos después de añadir la matriz al proxy, se debe emitir la señal apropiada para actualizar el gráfico.

Para hacer una superficie sensible, el valor x de cada elemento sucesivo en todas las filas debe ser ascendente o descendente a lo largo de la fila. Del mismo modo, el valor z de cada elemento sucesivo en todas las columnas debe ser ascendente o descendente en toda la columna.

Nota: actualmente sólo se admiten superficies con filas y columnas rectas. Cualquier fila con elementos que no tengan exactamente el mismo valor z o cualquier columna con elementos que no tengan exactamente el mismo valor x puede recortarse incorrectamente si toda la superficie no encaja completamente dentro de los rangos visibles del eje x o del eje z.

Nota: las superficies con menos de dos filas o columnas se representan como líneas.

Nota: en algunos entornos, es posible que las superficies con muchos vértices visibles no se rendericen porque superan el número de vértices por dibujo admitido por el controlador gráfico. Esto ocurre sobre todo en plataformas de 32 bits y OpenGL ES2.

Véase también Qt Graphs Data Handling with 3D.

Documentación de propiedades

[read-only] columnCount : qsizetype

Esta propiedad contiene el número de columnas de la matriz de datos.

Funciones de acceso:

qsizetype columnCount() const

Señal del notificador:

void columnCountChanged(qsizetype count)

[read-only] rowCount : qsizetype

Esta propiedad contiene el número de filas de la matriz de datos.

Funciones de acceso:

qsizetype rowCount() const

Señal del notificador:

void rowCountChanged(qsizetype count)

[read-only] series : QSurface3DSeries*

Esta propiedad contiene la serie a la que se adjunta este proxy.

Funciones de acceso:

QSurface3DSeries *series() const

Señal del notificador:

void seriesChanged(QSurface3DSeries *series)

Documentación de la función miembro

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

Construye QSurfaceDataProxy con la dirección parent.

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

Elimina el proxy de datos de superficie.

qsizetype QSurfaceDataProxy::addRow(QSurfaceDataRow row)

Añade la nueva fila row al final de un array. La nueva fila debe tener el mismo número de columnas que las filas del array inicial.

Devuelve el índice de la fila añadida.

qsizetype QSurfaceDataProxy::addRows(QSurfaceDataArray rows)

Añade nuevas rows al final de una matriz. Las nuevas filas deben tener el mismo número de columnas que las filas del array inicial.

Devuelve el índice de la primera fila añadida.

[signal] void QSurfaceDataProxy::arrayReset()

Esta señal se emite cuando se reinicia la matriz de datos. Si se cambia el contenido de toda la matriz sin llamar a resetArray(), es necesario emitir esta señal para actualizar el gráfico.

void QSurfaceDataProxy::insertRow(qsizetype rowIndex, QSurfaceDataRow row)

Inserta la nueva fila row en rowIndex. Si rowIndex es igual al tamaño del array, las filas se añaden al final del array. La nueva fila debe tener el mismo número de columnas que las filas de la matriz inicial.

void QSurfaceDataProxy::insertRows(qsizetype rowIndex, QSurfaceDataArray rows)

Inserta el nuevo rows en rowIndex. Si rowIndex es igual al tamaño del array, las filas se añaden al final del array. El nuevo rows debe tener el mismo número de columnas que las filas del array inicial.

const QSurfaceDataItem &QSurfaceDataProxy::itemAt(QPoint position) const

Devuelve el puntero al elemento situado en la posición position. El valor x de position indica la fila y el valor y indica la columna. Se garantiza que el elemento sólo será válido hasta la siguiente llamada que modifique los datos.

const QSurfaceDataItem &QSurfaceDataProxy::itemAt(qsizetype rowIndex, qsizetype columnIndex) const

Devuelve el puntero al elemento en la posición especificada por rowIndex y columnIndex. Se garantiza que sólo será válido hasta la siguiente llamada que modifique los datos.

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

Esta señal se emite cuando cambia el elemento en la posición especificada por rowIndex y columnIndex. Si el elemento se cambia en la matriz sin llamar a setItem(), esta señal debe emitirse para actualizar el gráfico.

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

Elimina el número de filas especificado por removeCount comenzando en la posición rowIndex. El intento de eliminar filas más allá del final de la matriz no hace nada.

void QSurfaceDataProxy::resetArray()

Borra la matriz existente y activa la señal arrayReset().

void QSurfaceDataProxy::resetArray(QSurfaceDataArray newArray)

* Establece el array desde newArray. Si el nuevo array es igual al * existente, esta función simplemente dispara la señal arrayReset().

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

Esta señal se emite cuando se añade el número de filas especificado por count, comenzando en la posición startIndex. Si se añaden filas a la matriz sin llamar a addRow() o addRows(), es necesario emitir esta señal para actualizar el gráfico.

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

Esta señal se emite cuando el número de filas especificado por count se modifica, comenzando en la posición startIndex. Si se cambian filas en el array sin llamar a setRow() o setRows(), es necesario emitir esta señal para actualizar el gráfico.

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

Esta señal se emite cuando el número de filas especificado por count se inserta en la posición startIndex.

Si se insertan filas en el array sin llamar a insertRow() o insertRows(), esta señal debe ser emitida para actualizar el gráfico.

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

Esta señal se emite cuando se elimina el número de filas especificado por count, comenzando en la posición startIndex.

El índice es el tamaño actual del array si las filas se han eliminado desde el final del array. Si se eliminan filas de la matriz sin llamar a removeRows(), es necesario emitir esta señal para actualizar el gráfico.

void QSurfaceDataProxy::setItem(QPoint position, QSurfaceDataItem item)

Cambia un único elemento en la posición position al elemento item. El valor x de position indica la fila y el valor y indica la columna.

void QSurfaceDataProxy::setItem(qsizetype rowIndex, qsizetype columnIndex, QSurfaceDataItem item)

Cambia un único elemento en la posición especificada por rowIndex y columnIndex al elemento item.

void QSurfaceDataProxy::setRow(qsizetype rowIndex, QSurfaceDataRow row)

Modifica una fila existente sustituyendo la fila en la posición rowIndex por la nueva fila especificada por row. La nueva fila puede ser la misma que la fila existente ya almacenada en rowIndex. La nueva fila debe tener el mismo número de columnas que la fila a la que sustituye.

void QSurfaceDataProxy::setRows(qsizetype rowIndex, QSurfaceDataArray rows)

Modifica las filas existentes sustituyendo las filas que comienzan en la posición rowIndex por las nuevas filas especificadas por rows. Las filas de la matriz rows pueden ser las mismas que las filas existentes ya almacenadas en rowIndex. Las nuevas filas deben tener el mismo número de columnas que las filas a las que sustituyen.

No miembros relacionados

[alias] QSurfaceDataArray

Una lista de punteros a objetos QSurfaceDataRow.

[alias] QSurfaceDataRow

Una lista de objetos QSurfaceDataItem.

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