Sur cette page

QItemModelScatterDataProxy Class

Classe proxy pour la présentation des données dans les modèles d'éléments avec Q3DScatter. Plus...

En-tête : #include <QItemModelScatterDataProxy>
CMake : find_package(Qt6 REQUIRED COMPONENTS DataVisualization)
target_link_libraries(mytarget PRIVATE Qt6::DataVisualization)
qmake : QT += datavisualization
Depuis : QtDataVisualization 1.0
En QML : ItemModelScatterDataProxy
Hérites : QScatterDataProxy

Propriétés

Fonctions publiques

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

Signaux

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)

Description détaillée

QItemModelScatterDataProxy vous permet d'utiliser les modèles dérivés de QAbstractItemModel comme source de données pour Q3DScatter. Il met en correspondance les rôles de QAbstractItemModel avec les valeurs XYZ des points de Q3DScatter.

Les données sont résolues de manière asynchrone chaque fois que le mappage ou le modèle change. QScatterDataProxy::arrayReset() est émis lorsque les données ont été résolues. Toutefois, les insertions, les suppressions et les modifications d'un seul élément de données après l'initialisation du modèle sont résolues de manière synchrone, à moins que la même trame ne contienne également une modification qui entraîne la résolution de l'ensemble du modèle.

Le mappage ignore les lignes et les colonnes du site QAbstractItemModel et traite tous les éléments de la même manière. Elle exige que le modèle fournisse des rôles pour les éléments de données qui peuvent être mis en correspondance avec les valeurs X, Y et Z des points de dispersion.

Par exemple, supposons que vous disposiez d'un site QAbstractItemModel personnalisé pour stocker diverses mesures effectuées sur des échantillons de matériaux, fournissant des données pour des rôles tels que "densité", "dureté" et "conductivité". Vous pouvez visualiser ces propriétés sur un graphique de dispersion à l'aide de ce 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 les champs du modèle ne contiennent pas les données dans le format exact dont vous avez besoin, vous pouvez spécifier une expression régulière de modèle de recherche et une règle de remplacement pour chaque rôle afin d'obtenir la valeur dans le format dont vous avez besoin. Pour plus d'informations sur le fonctionnement du remplacement à l'aide d'expressions régulières, voir la documentation de la fonction QString::replace(const QRegularExpression &rx, const QString &after). Notez que l'utilisation d'expressions régulières a un impact sur les performances. Il est donc plus efficace d'utiliser des modèles d'éléments pour lesquels il n'est pas nécessaire d'effectuer des recherches et des remplacements pour obtenir les valeurs souhaitées.

Pour un exemple d'utilisation des modèles de recherche en conjonction avec les rôles, voir ItemModelBarDataProxy usage in Simple Bar Graph example.

Voir également Qt Data Visualization Data Handling.

Documentation sur les propriétés

itemModel : QAbstractItemModel*

Cette propriété contient le modèle d'élément à utiliser comme source de données pour une série de nuages de points en 3D.

Fonctions d'accès :

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

Signal de notification :

void itemModelChanged(const QAbstractItemModel *itemModel)

rotationRole : QString

Cette propriété contient le rôle du modèle d'élément à mettre en correspondance avec la rotation de l'élément.

Le modèle peut fournir la valeur de la rotation sous la forme d'une variante directement convertible en QQuaternion, ou sous la forme d'une des représentations sous forme de chaîne de caractères : "scalar,x,y,z" ou "@angle,x,y,z". La première construira directement le quaternion avec les valeurs données, et la seconde construira le quaternion à l'aide de la méthode QQuaternion::fromAxisAndAngle().

Fonctions d'accès :

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

Signal du notificateur :

void rotationRoleChanged(const QString &role)

rotationRolePattern : QRegularExpression

Cette propriété indique si une recherche et un remplacement sont effectués sur la valeur mappée par le rôle de rotation avant qu'elle ne soit utilisée pour la rotation de l'élément.

Cette propriété spécifie l'expression régulière pour trouver la partie de la valeur mappée à remplacer et la propriété rotationRoleReplace contient la chaîne de remplacement.

Fonctions d'accès :

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

Notifier signal :

void rotationRolePatternChanged(const QRegularExpression &pattern)

Voir également rotationRole et rotationRoleReplace.

rotationRoleReplace : QString

Cette propriété contient le contenu de remplacement à utiliser en conjonction avec le modèle de rôle de rotation.

La valeur par défaut est une chaîne vide. Pour plus d'informations sur le fonctionnement de la recherche et du remplacement à l'aide d'expressions régulières, voir la documentation de la fonction QString::replace(const QRegularExpression &rx, const QString &after).

Fonctions d'accès :

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

Signal du notificateur :

void rotationRoleReplaceChanged(const QString &replace)

Voir également rotationRole et rotationRolePattern.

xPosRole : QString

Cette propriété contient le rôle du modèle d'élément à mettre en correspondance avec la position X.

Fonctions d'accès :

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

Signal de notification :

void xPosRoleChanged(const QString &role)

xPosRolePattern : QRegularExpression

Cette propriété indique si la recherche et le remplacement sont effectués sur la valeur mappée par le rôle x position avant qu'elle ne soit utilisée comme valeur de position de l'élément.

Cette propriété spécifie l'expression régulière permettant de trouver la partie de la valeur mappée à remplacer et la propriété xPosRoleReplace contient la chaîne de remplacement.

Fonctions d'accès :

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

Notifier signal :

void xPosRolePatternChanged(const QRegularExpression &pattern)

Voir également xPosRole et xPosRoleReplace.

xPosRoleReplace : QString

Cette propriété contient le contenu de remplacement à utiliser en conjonction avec le modèle de rôle x position.

La valeur par défaut est une chaîne vide. Pour plus d'informations sur le fonctionnement de la recherche et du remplacement à l'aide d'expressions régulières, voir la documentation de la fonction QString::replace(const QRegularExpression &rx, const QString &after).

Fonctions d'accès :

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

Signal du notificateur :

void xPosRoleReplaceChanged(const QString &replace)

Voir également xPosRole et xPosRolePattern.

yPosRole : QString

Cette propriété contient le rôle du modèle d'élément à mettre en correspondance avec la position Y.

Fonctions d'accès :

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

Signal de notification :

void yPosRoleChanged(const QString &role)

yPosRolePattern : QRegularExpression

Cette propriété indique si une recherche et un remplacement sont effectués sur la valeur mappée par le rôle de position y avant qu'elle ne soit utilisée comme valeur de position de l'élément.

Cette propriété spécifie l'expression régulière permettant de trouver la partie de la valeur mappée à remplacer et la propriété yPosRoleReplace contient la chaîne de remplacement.

Fonctions d'accès :

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

Notifier signal :

void yPosRolePatternChanged(const QRegularExpression &pattern)

Voir également yPosRole et yPosRoleReplace.

yPosRoleReplace : QString

Cette propriété contient le contenu de remplacement à utiliser en conjonction avec le modèle de rôle y position.

La valeur par défaut est une chaîne vide. Pour plus d'informations sur le fonctionnement de la recherche et du remplacement à l'aide d'expressions régulières, voir la documentation de la fonction QString::replace(const QRegularExpression &rx, const QString &after).

Fonctions d'accès :

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

Signal du notificateur :

void yPosRoleReplaceChanged(const QString &replace)

Voir également yPosRole et yPosRolePattern.

zPosRole : QString

Cette propriété contient le rôle du modèle d'élément à mettre en correspondance avec la position Z.

Fonctions d'accès :

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

Signal de notification :

void zPosRoleChanged(const QString &role)

zPosRolePattern : QRegularExpression

Cette propriété indique si une recherche et un remplacement sont effectués sur la valeur mappée par le rôle z position avant qu'elle ne soit utilisée comme valeur de position de l'élément.

Cette propriété spécifie l'expression régulière permettant de trouver la partie de la valeur mappée à remplacer et la propriété zPosRoleReplace contient la chaîne de remplacement.

Fonctions d'accès :

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

Notifier signal :

void zPosRolePatternChanged(const QRegularExpression &pattern)

Voir également zPosRole et zPosRoleReplace.

zPosRoleReplace : QString

Cette propriété contient le contenu de remplacement à utiliser en conjonction avec le modèle de rôle z position.

La valeur par défaut est une chaîne vide. Pour plus d'informations sur le fonctionnement de la recherche et du remplacement à l'aide d'expressions régulières, voir la documentation de la fonction QString::replace(const QRegularExpression &rx, const QString &after).

Fonctions d'accès :

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

Signal du notificateur :

void zPosRoleReplaceChanged(const QString &replace)

Voir également zPosRole et zPosRolePattern.

Documentation sur les fonctions membres

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

Construit QItemModelScatterDataProxy avec l'option parent.

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

Construit QItemModelScatterDataProxy avec itemModel et parent en option. Le proxy n'est pas propriétaire de itemModel, car les modèles d'éléments appartiennent généralement à d'autres contrôles.

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

Construit QItemModelScatterDataProxy avec itemModel et parent en option. Le proxy n'est pas propriétaire de itemModel, car les modèles d'éléments appartiennent généralement à d'autres contrôles. La propriété xPosRole est définie sur xPosRole, la propriété yPosRole sur yPosRole, et la propriété zPosRole sur zPosRole.

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

Construit QItemModelScatterDataProxy avec itemModel et parent en option. Le proxy n'est pas propriétaire de itemModel, car les modèles d'éléments appartiennent généralement à d'autres contrôles. La propriété xPosRole est définie sur xPosRole, la propriété yPosRole sur yPosRole, la propriété zPosRole sur zPosRole, et la propriété rotationRole sur rotationRole.

[virtual noexcept] QItemModelScatterDataProxy::~QItemModelScatterDataProxy()

Détruit QItemModelScatterDataProxy.

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

Modifie la cartographie de xPosRole, yPosRole, zPosRole, et rotationRole.

void QItemModelScatterDataProxy::setItemModel(QAbstractItemModel *itemModel)

Définit itemModel comme modèle d'élément pour Q3DScatter. Ne prend pas possession du modèle, mais s'y connecte pour écouter les changements.

Note : Fonction de définition de la propriété itemModel.

Voir aussi 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.