En esta página

QItemModelScatterDataProxy Class

Clase proxy para presentar datos en modelos de elementos con Q3DScatter. Más...

Cabecera: #include <QItemModelScatterDataProxy>
CMake: find_package(Qt6 REQUIRED COMPONENTS DataVisualization)
target_link_libraries(mytarget PRIVATE Qt6::DataVisualization)
qmake: QT += datavisualization
Desde: QtDataVisualization 1.0
En QML: ItemModelScatterDataProxy
Hereda: QScatterDataProxy

Propiedades

Funciones públicas

QItemModelScatterDataProxy(QObject *parent = nullptr)
QItemModelScatterDataProxy(QAbstractItemModel *itemModel, QObject *parent = nullptr)
QItemModelScatterDataProxy(QAbstractItemModel *itemModel, const QString &xPosRole, const QString &yPosRole, const QString &zPosRole, QObject *parent = nullptr)
QItemModelScatterDataProxy(QAbstractItemModel *itemModel, const QString &xPosRole, const QString &yPosRole, const QString &zPosRole, const QString &rotationRole, QObject *parent = nullptr)
virtual ~QItemModelScatterDataProxy()
QAbstractItemModel *itemModel() const
void remap(const QString &xPosRole, const QString &yPosRole, const QString &zPosRole, const QString &rotationRole)
QString rotationRole() const
QRegularExpression rotationRolePattern() const
QString rotationRoleReplace() const
void setItemModel(QAbstractItemModel *itemModel)
void setRotationRole(const QString &role)
void setRotationRolePattern(const QRegularExpression &pattern)
void setRotationRoleReplace(const QString &replace)
void setXPosRole(const QString &role)
void setXPosRolePattern(const QRegularExpression &pattern)
void setXPosRoleReplace(const QString &replace)
void setYPosRole(const QString &role)
void setYPosRolePattern(const QRegularExpression &pattern)
void setYPosRoleReplace(const QString &replace)
void setZPosRole(const QString &role)
void setZPosRolePattern(const QRegularExpression &pattern)
void setZPosRoleReplace(const QString &replace)
QString xPosRole() const
QRegularExpression xPosRolePattern() const
QString xPosRoleReplace() const
QString yPosRole() const
QRegularExpression yPosRolePattern() const
QString yPosRoleReplace() const
QString zPosRole() const
QRegularExpression zPosRolePattern() const
QString zPosRoleReplace() const

Señales

void itemModelChanged(const QAbstractItemModel *itemModel)
void rotationRoleChanged(const QString &role)
void rotationRolePatternChanged(const QRegularExpression &pattern)
void rotationRoleReplaceChanged(const QString &replace)
void xPosRoleChanged(const QString &role)
void xPosRolePatternChanged(const QRegularExpression &pattern)
void xPosRoleReplaceChanged(const QString &replace)
void yPosRoleChanged(const QString &role)
void yPosRolePatternChanged(const QRegularExpression &pattern)
void yPosRoleReplaceChanged(const QString &replace)
void zPosRoleChanged(const QString &role)
void zPosRolePatternChanged(const QRegularExpression &pattern)
void zPosRoleReplaceChanged(const QString &replace)

Descripción Detallada

QItemModelScatterDataProxy permite utilizar modelos derivados de QAbstractItemModel como fuente de datos para Q3DScatter. Mapea roles de QAbstractItemModel a los valores XYZ de los puntos de Q3DScatter.

Los datos se resuelven de forma asíncrona cada vez que cambia la asignación o el modelo. QScatterDataProxy::arrayReset() se emite cuando los datos se han resuelto. Sin embargo, las inserciones, eliminaciones y cambios de un único elemento de datos después de la inicialización del modelo se resuelven de forma sincrónica, a menos que el mismo marco también contenga un cambio que provoque la resolución de todo el modelo.

El mapeo ignora las filas y columnas de QAbstractItemModel y trata todos los elementos por igual. Requiere que el modelo proporcione roles para los ítems de datos que pueden ser mapeados a valores X, Y y Z para los puntos de dispersión.

Por ejemplo, suponga que tiene un QAbstractItemModel personalizado para almacenar varias mediciones realizadas en muestras de materiales, proporcionando datos para roles como "densidad", "dureza" y "conductividad". Podría visualizar estas propiedades en un gráfico de dispersión utilizando este proxy:

// Map "density" value to X-axis, "hardness" to Y-axis and "conductivity" to Z-axis.
QItemModelScatterDataProxy *proxy = new QItemModelScatterDataProxy(customModel,
                                                                   QStringLiteral("density"),
                                                                   QStringLiteral("hardness"),
                                                                   QStringLiteral("conductivity"));

Si los campos del modelo no contienen los datos en el formato exacto que necesita, puede especificar una expresión regular de patrón de búsqueda y una regla de reemplazo para cada rol para obtener el valor en el formato que necesita. Para obtener más información sobre cómo funciona el reemplazo mediante expresiones regulares, consulte la documentación de la función QString::replace(const QRegularExpression &rx, const QString &after). Tenga en cuenta que el uso de expresiones regulares tiene un impacto en el rendimiento, por lo que es más eficiente utilizar modelos de elementos en los que no sea necesario realizar búsquedas y reemplazos para obtener los valores deseados.

Para ver un ejemplo sobre el uso de los patrones de búsqueda junto con las funciones, consulte ItemModelBarDataProxy usage in Simple Bar Graph example.

Vea también Qt Data Visualization Manejo de Datos.

Documentación de Propiedades

itemModel : QAbstractItemModel*

Esta propiedad contiene el modelo de elemento que se utilizará como fuente de datos para una serie de dispersión 3D.

Funciones de acceso:

QAbstractItemModel *itemModel() const
void setItemModel(QAbstractItemModel *itemModel)

Señal del notificador:

void itemModelChanged(const QAbstractItemModel *itemModel)

rotationRole : QString

Esta propiedad contiene el rol del modelo de elemento que se asignará a la rotación del elemento.

El modelo puede proporcionar el valor para la rotación como una variante directamente convertible a QQuaternion, o como una de las representaciones de cadena: "scalar,x,y,z" o "@angle,x,y,z". La primera construirá el cuaternión directamente con los valores dados, y la segunda construirá el cuaternión utilizando el método QQuaternion::fromAxisAndAngle().

Funciones de acceso:

QString rotationRole() const
void setRotationRole(const QString &role)

Señal del notificador:

void rotationRoleChanged(const QString &role)

rotationRolePattern : QRegularExpression

Esta propiedad mantiene si se realiza una búsqueda y reemplazo en el valor mapeado por el rol de rotación antes de ser utilizado como rotación del ítem.

Esta propiedad especifica la expresión regular para encontrar la porción del valor mapeado a reemplazar y la propiedad rotationRoleReplace contiene la cadena de reemplazo.

Funciones de acceso:

QRegularExpression rotationRolePattern() const
void setRotationRolePattern(const QRegularExpression &pattern)

Señal de notificador:

void rotationRolePatternChanged(const QRegularExpression &pattern)

Véase también rotationRole y rotationRoleReplace.

rotationRoleReplace : QString

Esta propiedad contiene el contenido de reemplazo que se utilizará junto con el patrón de rol de rotación.

Por defecto es una cadena vacía. Para más información sobre cómo funciona la búsqueda y sustitución mediante expresiones regulares, consulte la documentación de la función QString::replace(const QRegularExpression &rx, const QString &after).

Funciones de acceso:

QString rotationRoleReplace() const
void setRotationRoleReplace(const QString &replace)

Señal de notificador:

void rotationRoleReplaceChanged(const QString &replace)

Véase también rotationRole y rotationRolePattern.

xPosRole : QString

Esta propiedad contiene el rol del modelo de ítem a mapear en la posición X.

Funciones de acceso:

QString xPosRole() const
void setXPosRole(const QString &role)

Señal del notificador:

void xPosRoleChanged(const QString &role)

xPosRolePattern : QRegularExpression

Esta propiedad indica si se realiza una búsqueda y reemplazo en el valor asignado por el rol de posición x antes de utilizarlo como valor de posición del ítem.

Esta propiedad especifica la expresión regular para encontrar la porción del valor mapeado a reemplazar y la propiedad xPosRoleReplace contiene la cadena de reemplazo.

Funciones de acceso:

QRegularExpression xPosRolePattern() const
void setXPosRolePattern(const QRegularExpression &pattern)

Señal de notificador:

void xPosRolePatternChanged(const QRegularExpression &pattern)

Véase también xPosRole y xPosRoleReplace.

xPosRoleReplace : QString

Esta propiedad contiene el contenido de reemplazo que se utilizará junto con el patrón de rol de posición x.

Por defecto es una cadena vacía. Para más información sobre cómo funciona la búsqueda y sustitución mediante expresiones regulares, consulte la documentación de la función QString::replace(const QRegularExpression &rx, const QString &after).

Funciones de acceso:

QString xPosRoleReplace() const
void setXPosRoleReplace(const QString &replace)

Señal de notificador:

void xPosRoleReplaceChanged(const QString &replace)

Véase también xPosRole y xPosRolePattern.

yPosRole : QString

Esta propiedad contiene el rol del modelo de ítem a mapear en la posición Y.

Funciones de acceso:

QString yPosRole() const
void setYPosRole(const QString &role)

Señal del notificador:

void yPosRoleChanged(const QString &role)

yPosRolePattern : QRegularExpression

Esta propiedad indica si se realiza una búsqueda y reemplazo en el valor asignado por el rol de posición y antes de utilizarlo como valor de posición de ítem.

Esta propiedad especifica la expresión regular para encontrar la porción del valor mapeado a reemplazar y la propiedad yPosRoleReplace contiene la cadena de reemplazo.

Funciones de acceso:

QRegularExpression yPosRolePattern() const
void setYPosRolePattern(const QRegularExpression &pattern)

Señal de notificador:

void yPosRolePatternChanged(const QRegularExpression &pattern)

Véase también yPosRole y yPosRoleReplace.

yPosRoleReplace : QString

Esta propiedad contiene el contenido de reemplazo que se utilizará junto con el patrón de rol de posición y.

Por defecto es una cadena vacía. Para más información sobre cómo funciona la búsqueda y sustitución mediante expresiones regulares, consulte la documentación de la función QString::replace(const QRegularExpression &rx, const QString &after).

Funciones de acceso:

QString yPosRoleReplace() const
void setYPosRoleReplace(const QString &replace)

Señal de notificador:

void yPosRoleReplaceChanged(const QString &replace)

Véase también yPosRole y yPosRolePattern.

zPosRole : QString

Esta propiedad contiene el rol del modelo de ítem a mapear en la posición Z.

Funciones de acceso:

QString zPosRole() const
void setZPosRole(const QString &role)

Señal del notificador:

void zPosRoleChanged(const QString &role)

zPosRolePattern : QRegularExpression

Esta propiedad indica si se realiza una búsqueda y reemplazo en el valor mapeado por el rol de posición z antes de ser utilizado como valor de posición de ítem.

Esta propiedad especifica la expresión regular para encontrar la porción del valor mapeado a reemplazar y la propiedad zPosRoleReplace contiene la cadena de reemplazo.

Funciones de acceso:

QRegularExpression zPosRolePattern() const
void setZPosRolePattern(const QRegularExpression &pattern)

Señal de notificador:

void zPosRolePatternChanged(const QRegularExpression &pattern)

Véase también zPosRole y zPosRoleReplace.

zPosRoleReplace : QString

Esta propiedad contiene el contenido de reemplazo que se utilizará junto con el patrón de rol de posición z.

Por defecto es una cadena vacía. Para más información sobre cómo funciona la búsqueda y sustitución mediante expresiones regulares, consulte la documentación de la función QString::replace(const QRegularExpression &rx, const QString &after).

Funciones de acceso:

QString zPosRoleReplace() const
void setZPosRoleReplace(const QString &replace)

Señal de notificador:

void zPosRoleReplaceChanged(const QString &replace)

Véase también zPosRole y zPosRolePattern.

Documentación de las funciones miembro

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

Construye QItemModelScatterDataProxy con parent opcional .

[explicit] QItemModelScatterDataProxy::QItemModelScatterDataProxy(QAbstractItemModel *itemModel, QObject *parent = nullptr)

Construye QItemModelScatterDataProxy con itemModel y parent opcional. El proxy no se apropia de itemModel, ya que normalmente los modelos de elementos son propiedad de otros controles.

[explicit] QItemModelScatterDataProxy::QItemModelScatterDataProxy(QAbstractItemModel *itemModel, const QString &xPosRole, const QString &yPosRole, const QString &zPosRole, QObject *parent = nullptr)

Construye QItemModelScatterDataProxy con itemModel y parent opcional. El proxy no toma la propiedad itemModel, ya que típicamente los modelos de ítems son propiedad de otros controles. La propiedad xPosRole se establece en xPosRole, la propiedad yPosRole en yPosRole, y la propiedad zPosRole en zPosRole.

[explicit] QItemModelScatterDataProxy::QItemModelScatterDataProxy(QAbstractItemModel *itemModel, const QString &xPosRole, const QString &yPosRole, const QString &zPosRole, const QString &rotationRole, QObject *parent = nullptr)

Construye QItemModelScatterDataProxy con itemModel y parent opcional. El proxy no toma la propiedad itemModel, ya que típicamente los modelos de ítems son propiedad de otros controles. La propiedad xPosRole se establece en xPosRole, la propiedad yPosRole en yPosRole, la propiedad zPosRole en zPosRole, y la propiedad rotationRole en rotationRole.

[virtual noexcept] QItemModelScatterDataProxy::~QItemModelScatterDataProxy()

Destruye QItemModelScatterDataProxy.

void QItemModelScatterDataProxy::remap(const QString &xPosRole, const QString &yPosRole, const QString &zPosRole, const QString &rotationRole)

Cambia el mapeado de xPosRole, yPosRole, zPosRole, y rotationRole.

void QItemModelScatterDataProxy::setItemModel(QAbstractItemModel *itemModel)

Establece itemModel como modelo de artículo para Q3DScatter. No se apropia del modelo, pero se conecta a él para escuchar los cambios.

Nota: Función Setter para la propiedad itemModel.

Véase también itemModel().

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