Auf dieser Seite

QItemModelScatterDataProxy Class

Proxy-Klasse zur Darstellung von Daten in Item-Modellen mit „ Q3DScatterWidgetItem “. Mehr...

Header: #include <QItemModelScatterDataProxy>
CMake: find_package(Qt6 REQUIRED COMPONENTS Graphs)
target_link_libraries(mytarget PRIVATE Qt6::Graphs)
qmake: QT += graphs
In QML: ItemModelScatterDataProxy
Erbt von: QScatterDataProxy

Eigenschaften

Öffentliche Funktionen

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

Signale

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)

Ausführliche Beschreibung

Mit `QItemModelScatterDataProxy` können Sie von ` QAbstractItemModel ` abgeleitete Modelle als Datenquelle für ` Q3DScatterWidgetItem` verwenden. Es ordnet die Rollen von ` QAbstractItemModel ` den XYZ-Werten der Punkte in ` Q3DScatterWidgetItem ` zu.

Die Daten werden asynchron aufgelöst, sobald sich die Zuordnung oder das Modell ändert. „ QScatterDataProxy::arrayReset()“ wird ausgegeben, sobald die Daten aufgelöst wurden. Einfügungen, Entfernungen und Änderungen einzelner Datenelemente nach der Modellinitialisierung werden jedoch synchron aufgelöst, es sei denn, derselbe Frame enthält auch eine Änderung, die eine Neuauflösung des gesamten Modells auslöst.

Das Mapping ignoriert Zeilen und Spalten des „ QAbstractItemModel “ und behandelt alle Elemente gleich. Es setzt voraus, dass das Modell Rollen für die Datenelemente bereitstellt, die den X-, Y- und Z-Werten der Streupunkte zugeordnet werden können.

Nehmen wir beispielsweise an, Sie verfügen über eine benutzerdefinierte „ QAbstractItemModel “ zur Speicherung verschiedener Messungen an Materialproben, die Daten für Rollen wie „Dichte“, „Härte“ und „Leitfähigkeit“ bereitstellt. Sie könnten diese Eigenschaften mithilfe dieses Proxys in einem Streudiagramm visualisieren:

// 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"));

Wenn die Felder des Modells die Daten nicht genau in dem von Ihnen benötigten Format enthalten, können Sie für jede Rolle einen regulären Ausdruck als Suchmuster und eine Ersetzungsregel festlegen, um den Wert in das gewünschte Format zu bringen. Weitere Informationen zur Funktionsweise des Ersetzens mithilfe regulärer Ausdrücke finden Sie in der Dokumentation zur Funktion „ QString::replace “ (const QRegularExpression &rx, const QString &after). Beachten Sie, dass die Verwendung regulärer Ausdrücke Auswirkungen auf die Leistung hat; daher ist es effizienter, Elementmodelle zu verwenden, bei denen kein Suchen und Ersetzen erforderlich ist, um die gewünschten Werte zu erhalten.

Beispiele für die Verwendung der Suchmuster in Verbindung mit den Rollen finden Sie unter „ ItemModelBarDataProxy “ im Beispiel „Einfaches Balkendiagramm“.

Siehe auch „Qt Graphs: Datenverarbeitung mit 3D“.

Dokumentation zu Eigenschaften

itemModel : QAbstractItemModel*

Diese Eigenschaft enthält das Elementmodell, das als Datenquelle für eine 3D-Streudiagrammreihe verwendet werden soll.

Zugriffsfunktionen:

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

Benachrichtigungssignal:

void itemModelChanged(const QAbstractItemModel *itemModel)

rotationRole : QString

Diese Eigenschaft übernimmt die Rolle des Elementmodells für die Zuordnung zur Elementrotation.

Das Modell kann den Wert für die Rotation entweder als Variante bereitstellen, die direkt in „ QQuaternion “ konvertierbar ist, oder als eine der folgenden Zeichenfolgendarstellungen: „ "scalar,x,y,z" “ oder „ "@angle,x,y,z" “. Im ersten Fall wird das Quaternion direkt mit den angegebenen Werten erstellt, im zweiten Fall erfolgt die Erstellung mithilfe der Methode „ QQuaternion::fromAxisAndAngle()“.

Zugriffsfunktionen:

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

Benachrichtigungssignal:

void rotationRoleChanged(const QString &role)

rotationRolePattern : QRegularExpression

Diese Eigenschaft legt fest, ob der von der Rotationsrolle zugeordnete Wert vor seiner Verwendung als Elementrotation gesucht und ersetzt wird.

Diese Eigenschaft gibt den regulären Ausdruck an, mit dem der zu ersetzende Teil des zugeordneten Werts gesucht wird, und die Eigenschaft „ rotationRoleReplace “ enthält die Ersatzzeichenfolge.

Zugriffsfunktionen:

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

Benachrichtigungssignal:

void rotationRolePatternChanged(const QRegularExpression &pattern)

Siehe auch „ rotationRole “ und „ rotationRoleReplace “.

rotationRoleReplace : QString

Diese Eigenschaft enthält den Ersetzungsinhalt, der in Verbindung mit dem Rotationsrollenmuster verwendet werden soll.

Standardmäßig ist dies eine leere Zeichenfolge. Weitere Informationen zur Funktionsweise der Suche und des Ersetzens mit regulären Ausdrücken finden Sie in der Funktionsdokumentation zu „ QString::replace “ (const QRegularExpression &rx, const QString &after).

Zugriffsfunktionen:

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

Notifier-Signal:

void rotationRoleReplaceChanged(const QString &replace)

Siehe auch rotationRole und rotationRolePattern.

scaleRole : QString

Diese Eigenschaft übernimmt die Rolle des Elementmodells, um es auf die Elementskala abzubilden.

Das Modell kann den Wert für die Skalierung entweder als eine der folgenden Varianten bereitstellen: „ "x,y,z" “. Im ersten Fall wird der Vektor3D direkt mit den angegebenen Werten erstellt.

Zugriffsfunktionen:

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

Benachrichtigungssignal:

void scaleRoleChanged(const QString &role)

scaleRolePattern : QRegularExpression

Diese Eigenschaft legt fest, ob der von der Skalenrolle zugeordnete Wert vor seiner Verwendung als Elementskala gesucht und ersetzt wird.

Diese Eigenschaft gibt den regulären Ausdruck an, mit dem der zu ersetzende Teil des zugeordneten Werts gesucht wird, und die Eigenschaft „ scaleRoleReplace “ enthält die Ersatzzeichenfolge.

Zugriffsfunktionen:

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

Benachrichtigungssignal:

void scaleRolePatternChanged(const QRegularExpression &pattern)

Siehe auch „ scaleRole “ und „ scaleRoleReplace “.

scaleRoleReplace : QString

Diese Eigenschaft enthält den Ersatzinhalt, der in Verbindung mit dem Rollenmuster „scale“ verwendet werden soll.

Standardmäßig ist dies eine leere Zeichenfolge. Weitere Informationen zur Funktionsweise der Suche und des Ersetzens mit regulären Ausdrücken finden Sie in der Funktionsdokumentation zu „ QString::replace “ (const QRegularExpression &rx, const QString &after).

Zugriffsfunktionen:

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

Notifier-Signal:

void scaleRoleReplaceChanged(const QString &replace)

Siehe auch scaleRole und scaleRolePattern.

xPosRole : QString

Diese Eigenschaft enthält die Rolle des Elementmodells, die der X-Position zugeordnet werden soll.

Zugriffsfunktionen:

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

Benachrichtigungssignal:

void xPosRoleChanged(const QString &role)

xPosRolePattern : QRegularExpression

Diese Eigenschaft legt fest, ob der durch die Rolle „x-Position“ zugeordnete Wert gesucht und ersetzt wird, bevor er als Elementpositionswert verwendet wird.

Diese Eigenschaft gibt den regulären Ausdruck an, mit dem der zu ersetzende Teil des zugeordneten Werts gesucht wird, und die Eigenschaft „ xPosRoleReplace “ enthält die Ersatzzeichenfolge.

Zugriffsfunktionen:

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

Benachrichtigungssignal:

void xPosRolePatternChanged(const QRegularExpression &pattern)

Siehe auch „ xPosRole “ und „ xPosRoleReplace “.

xPosRoleReplace : QString

Diese Eigenschaft enthält den Ersetzungsinhalt, der in Verbindung mit dem Positionsmuster „x“ verwendet werden soll.

Standardmäßig ist dies eine leere Zeichenfolge. Weitere Informationen zur Funktionsweise der Suche und des Ersetzens mit regulären Ausdrücken finden Sie in der Funktionsdokumentation zu „ QString::replace “ (const QRegularExpression &rx, const QString &after).

Zugriffsfunktionen:

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

Notifier-Signal:

void xPosRoleReplaceChanged(const QString &replace)

Siehe auch xPosRole und xPosRolePattern.

yPosRole : QString

Diese Eigenschaft enthält die Rolle des Elementmodells, die auf die Y-Position abgebildet werden soll.

Zugriffsfunktionen:

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

Benachrichtigungssignal:

void yPosRoleChanged(const QString &role)

yPosRolePattern : QRegularExpression

Diese Eigenschaft legt fest, ob der durch die Rolle „y-Position“ zugeordnete Wert vor seiner Verwendung als Elementpositionswert gesucht und ersetzt wird.

Diese Eigenschaft gibt den regulären Ausdruck an, mit dem der zu ersetzende Teil des zugeordneten Werts gesucht wird, und die Eigenschaft „ yPosRoleReplace “ enthält die Ersatzzeichenfolge.

Zugriffsfunktionen:

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

Benachrichtigungssignal:

void yPosRolePatternChanged(const QRegularExpression &pattern)

Siehe auch „ yPosRole “ und „ yPosRoleReplace “.

yPosRoleReplace : QString

Diese Eigenschaft enthält den Ersetzungsinhalt, der in Verbindung mit dem Positionsmuster „y“ verwendet werden soll.

Standardmäßig ist dies eine leere Zeichenfolge. Weitere Informationen zur Funktionsweise der Suche und des Ersetzens mit regulären Ausdrücken finden Sie in der Funktionsdokumentation zu „ QString::replace “ (const QRegularExpression &rx, const QString &after).

Zugriffsfunktionen:

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

Notifier-Signal:

void yPosRoleReplaceChanged(const QString &replace)

Siehe auch yPosRole und yPosRolePattern.

zPosRole : QString

Diese Eigenschaft übernimmt die Rolle des Elementmodells, um die Z-Position abzubilden.

Zugriffsfunktionen:

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

Benachrichtigungssignal:

void zPosRoleChanged(const QString &role)

zPosRolePattern : QRegularExpression

Diese Eigenschaft legt fest, ob der durch die Rolle „z-Position“ zugeordnete Wert vor seiner Verwendung als Elementpositionswert gesucht und ersetzt wird.

Diese Eigenschaft gibt den regulären Ausdruck an, mit dem der zu ersetzende Teil des zugeordneten Werts gesucht wird, und die Eigenschaft „ zPosRoleReplace “ enthält die Ersatzzeichenfolge.

Zugriffsfunktionen:

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

Benachrichtigungssignal:

void zPosRolePatternChanged(const QRegularExpression &pattern)

Siehe auch „ zPosRole “ und „ zPosRoleReplace “.

zPosRoleReplace : QString

Diese Eigenschaft enthält den Ersetzungsinhalt, der in Verbindung mit dem Rollenschema „z-Position“ verwendet werden soll.

Der Standardwert ist eine leere Zeichenkette. Weitere Informationen zur Funktionsweise der Suche und des Ersetzens mit regulären Ausdrücken finden Sie in der Funktionsdokumentation zu „ QString::replace “ (const QRegularExpression &rx, const QString &after).

Zugriffsfunktionen:

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

Benachrichtigungssignal:

void zPosRoleReplaceChanged(const QString &replace)

Siehe auch „ zPosRole “ und „ zPosRolePattern “.

Dokumentation zu den Mitgliedsfunktionen

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

Erstellt ein `QItemModelScatterDataProxy` mit optionalem ` parent`.

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

Erstellt ein `QItemModelScatterDataProxy` mit ` itemModel ` und einem optionalen ` parent`. Der Proxy übernimmt nicht die Eigentümerschaft an ` itemModel`, da Item-Modelle in der Regel anderen Steuerelementen gehören.

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

Erstellt ein `QItemModelScatterDataProxy` mit ` itemModel ` und einem optionalen ` parent`. Der Proxy übernimmt nicht die Eigentümerschaft an ` itemModel`, da Item-Modelle in der Regel anderen Steuerelementen gehören. Die Eigenschaft ` xPosRole ` wird auf ` xPosRole` gesetzt, die Eigenschaft ` yPosRole ` auf ` yPosRole` und die Eigenschaft ` zPosRole ` auf ` zPosRole`.

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

Erstellt ein `QItemModelScatterDataProxy` mit ` itemModel ` und einem optionalen ` parent`. Der Proxy übernimmt nicht die Eigentümerschaft an ` itemModel`, da Item-Modelle in der Regel anderen Steuerelementen gehören. Die Eigenschaft ` xPosRole ` wird auf ` xPosRole` gesetzt, die Eigenschaft ` yPosRole ` auf ` yPosRole`, die Eigenschaft ` zPosRole ` auf ` zPosRole` und die Eigenschaft ` rotationRole ` auf ` rotationRole`.

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

Löscht „ QItemModelScatterDataProxy “.

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

Änderungen an der Zuordnung v xPosRole, yPosRole, zPosRole und rotationRole.

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

Änderungen an der Zuordnung v xPosRole, yPosRole, zPosRole, rotationRole und scaleRole.

void QItemModelScatterDataProxy::setItemModel(QAbstractItemModel *itemModel)

Legt „ itemModel “ als Elementmodell für „ Q3DScatterWidgetItem “ fest. Übernimmt nicht die Eigentümerschaft am Modell, stellt jedoch eine Verbindung her, um auf Änderungen zu achten.

Hinweis: Setter -Funktion für die Eigenschaft „ itemModel “.

Siehe auch 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.