Sur cette page

QItemModelScatterDataProxy Class

Classe proxy permettant de présenter des données dans des modèles d'éléments avec Q3DScatterWidgetItem. En savoir plus...

En-tête : #include <QItemModelScatterDataProxy>
CMake : find_package(Qt6 REQUIRED COMPONENTS Graphs)
target_link_libraries(mytarget PRIVATE Qt6::Graphs)
qmake : QT += graphs
En QML : ItemModelScatterDataProxy
Hérite de : 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() override
QAbstractItemModel *itemModel() const
void remap(const QString &xPosRole, const QString &yPosRole, const QString &zPosRole, const QString &rotationRole)
void remap(const QString &xPosRole, const QString &yPosRole, const QString &zPosRole, const QString &rotationRole, const QString &scaleRole)
QString rotationRole() const
QRegularExpression rotationRolePattern() const
QString rotationRoleReplace() const
QString scaleRole() const
QRegularExpression scaleRolePattern() const
QString scaleRoleReplace() const
void setItemModel(QAbstractItemModel *itemModel)
void setRotationRole(const QString &role)
void setRotationRolePattern(const QRegularExpression &pattern)
void setRotationRoleReplace(const QString &replace)
void setScaleRole(const QString &role)
void setScaleRolePattern(const QRegularExpression &pattern)
void setScaleRoleReplace(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 scaleRoleChanged(const QString &role)
void scaleRolePatternChanged(const QRegularExpression &pattern)
void scaleRoleReplaceChanged(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 des modèles dérivés de QAbstractItemModel comme source de données pour Q3DScatterWidgetItem. Il mappe les rôles de QAbstractItemModel aux valeurs XYZ des points de Q3DScatterWidgetItem.

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. Cependant, 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, sauf si la même trame contient également une modification entraînant la résolution de l’ensemble du modèle.

Le mappage ignore les lignes et les colonnes de l’ QAbstractItemModel et traite tous les éléments de la même manière. Il nécessite que le modèle fournisse des rôles pour les éléments de données pouvant être mappés aux valeurs X, Y et Z des points du nuage de points.

Par exemple, supposons que vous disposiez d’une « QAbstractItemModel » personnalisée permettant de 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 pourriez visualiser ces propriétés sur un nuage de points à 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 exactement au format dont vous avez besoin, vous pouvez spécifier une expression régulière de recherche et une règle de remplacement pour chaque rôle afin d’obtenir la valeur au format souhaité. Pour plus d’informations sur le fonctionnement du remplacement à l’aide d’expressions régulières, consultez la documentation relative aux fonctions 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 une recherche et un remplacement afin d’obtenir les valeurs souhaitées.

Par exemple, pour en savoir plus sur l'utilisation des modèles de recherche en association avec les rôles, consultez la section « Utilisation de ItemModelBarDataProxy » dans « Simple Bar Graph ».

Voir également la documentation surle traitement des données« Qt Graphs » avec la 3D.

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é joue le rôle de modèle d'élément à associer à la rotation des éléments.

Le modèle peut fournir la valeur de rotation soit sous la forme d'une variante directement convertible en ` QQuaternion `, soit sous la forme d'une des représentations sous forme de chaîne de caractères suivantes : ` "scalar,x,y,z" ` ou ` "@angle,x,y,z"`. La première option permet de construire directement le quaternion à partir des valeurs fournies, tandis que la seconde utilise la méthode ` QQuaternion::fromAxisAndAngle()` pour le construire.

Fonctions d’accès :

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

Signal de notification :

void rotationRoleChanged(const QString &role)

rotationRolePattern : QRegularExpression

Cette propriété indique si une opération de recherche et de remplacement est effectuée sur la valeur mappée par le rôle de rotation avant qu'elle ne soit utilisée pour la rotation des éléments.

Cette propriété spécifie l'expression régulière permettant de rechercher la partie de la valeur mappée à remplacer, tandis que la propriété « rotationRoleReplace » contient la chaîne de remplacement.

Fonctions d’accès :

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

Signal de notification :

void rotationRolePatternChanged(const QRegularExpression &pattern)

Voir également rotationRole et rotationRoleReplace.

rotationRoleReplace : QString

Cette propriété contient le contenu de remplacement à utiliser en association avec le modèle de rôle « 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, consultez la documentation relative à la fonction QString::replace(const QRegularExpression &rx, const QString &after).

Fonctions d’accès :

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

Signal de notification :

void rotationRoleReplaceChanged(const QString &replace)

Voir également rotationRole et rotationRolePattern.

scaleRole : QString

Cette propriété joue le rôle de modèle d'élément à mettre en correspondance avec l'échelle de l'élément.

Le modèle peut fournir la valeur de l'échelle sous la forme d'une variante, à savoir « "x,y,z" ». La première option permettra de construire directement le vecteur 3D à partir des valeurs fournies.

Fonctions d'accès :

QString scaleRole() const
void setScaleRole(const QString &role)

Signal de notification :

void scaleRoleChanged(const QString &role)

scaleRolePattern : QRegularExpression

Cette propriété indique si une opération de recherche et de remplacement est effectuée sur la valeur mappée par le rôle d'échelle avant qu'elle ne soit utilisée comme échelle d'élément.

Cette propriété spécifie l'expression régulière permettant de repérer la partie de la valeur mappée à remplacer, tandis que la propriété « scaleRoleReplace » contient la chaîne de remplacement.

Fonctions d'accès :

QRegularExpression scaleRolePattern() const
void setScaleRolePattern(const QRegularExpression &pattern)

Signal de notification :

void scaleRolePatternChanged(const QRegularExpression &pattern)

Voir également scaleRole et scaleRoleReplace.

scaleRoleReplace : QString

Cette propriété contient le contenu de remplacement à utiliser avec le modèle de rôle « scale ».

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, consultez la documentation relative à la fonction QString::replace(const QRegularExpression &rx, const QString &after).

Fonctions d’accès :

QString scaleRoleReplace() const
void setScaleRoleReplace(const QString &replace)

Signal de notification :

void scaleRoleReplaceChanged(const QString &replace)

Voir également scaleRole et scaleRolePattern.

xPosRole : QString

Cette propriété joue le rôle de modèle d'élément à mapper à 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é détermine si la recherche et le remplacement s'effectuent sur la valeur mappée par le rôle de position x avant qu'elle ne soit utilisée comme valeur de position d'élément.

Cette propriété spécifie l'expression régulière permettant de rechercher la partie de la valeur mappée à remplacer, tandis que la propriété « xPosRoleReplace » contient la chaîne de remplacement.

Fonctions d'accès :

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

Signal de notification :

void xPosRolePatternChanged(const QRegularExpression &pattern)

Voir également xPosRole et xPosRoleReplace.

xPosRoleReplace : QString

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

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, consultez la documentation relative à la fonction QString::replace(const QRegularExpression &rx, const QString &after).

Fonctions d’accès :

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

Signal de notification :

void xPosRoleReplaceChanged(const QString &replace)

Voir également xPosRole et xPosRolePattern.

yPosRole : QString

Cette propriété joue le rôle de modèle d'élément à mapper en 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 opération de recherche et de remplacement est effectuée sur la valeur associée au rôle de position y avant qu'elle ne soit utilisée comme valeur de position d'élément.

Cette propriété spécifie l'expression régulière permettant de rechercher la partie de la valeur mappée à remplacer, tandis que la propriété « yPosRoleReplace » contient la chaîne de remplacement.

Fonctions d'accès :

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

Signal de notification :

void yPosRolePatternChanged(const QRegularExpression &pattern)

Voir également yPosRole et yPosRoleReplace.

yPosRoleReplace : QString

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

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, consultez la documentation relative à la fonction QString::replace(const QRegularExpression &rx, const QString &after).

Fonctions d’accès :

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

Signal de notification :

void yPosRoleReplaceChanged(const QString &replace)

Voir également yPosRole et yPosRolePattern.

zPosRole : QString

Cette propriété joue le rôle de modèle d'élément permettant de le mapper à 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 opération de recherche et de remplacement est effectuée sur la valeur associée au rôle de position « z » avant que celle-ci ne soit utilisée comme valeur de position d’élément.

Cette propriété spécifie l’expression régulière permettant de rechercher la partie de la valeur mappée à remplacer, tandis que la propriété « zPosRoleReplace » contient la chaîne de remplacement.

Fonctions d'accès :

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

Signal de notification :

void zPosRolePatternChanged(const QRegularExpression &pattern)

Voir également zPosRole et zPosRoleReplace.

zPosRoleReplace : QString

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

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, consultez la documentation relative à la fonction QString::replace(const QRegularExpression &rx, const QString &after).

Fonctions d'accès :

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

Signal de notification :

void zPosRoleReplaceChanged(const QString &replace)

Voir également zPosRole et zPosRolePattern.

Documentation des fonctions membres

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

Construit un objet `QItemModelScatterDataProxy` avec un paramètre facultatif ` parent`.

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

Construit un objet `QItemModelScatterDataProxy` à partir d’un ` itemModel ` et d’un ` parent` facultatif. Le proxy ne prend pas possession de l’` itemModel`, car les modèles d’élément sont généralement détenus par d’autres contrôles.

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

Construit un objet `QItemModelScatterDataProxy` à partir de ` itemModel ` et, éventuellement, d’un ` parent`. Le proxy ne prend pas possession de ` itemModel`, car les modèles d’éléments sont généralement détenus par 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 un objet `QItemModelScatterDataProxy` à partir de ` itemModel ` et, éventuellement, d’un ` parent`. Le proxy ne prend pas possession 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`.

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

Supprime QItemModelScatterDataProxy.

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

Modifications apportées au mappage des adresses xPosRole, yPosRole, zPosRole et rotationRole.

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

Modifications apportées au mappage des adresses xPosRole, yPosRole, zPosRole, rotationRole et scaleRole.

void QItemModelScatterDataProxy::setItemModel(QAbstractItemModel *itemModel)

Définit ` itemModel ` comme modèle d'élément pour ` Q3DScatterWidgetItem`. Ne prend pas possession du modèle, mais s'y connecte pour détecter les modifications.

Remarque : fonctionde définition pour la propriété itemModel.

Voir également 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.