このページでは

QItemModelScatterDataProxy Class

Q3DScatterWidgetItem を使用して、アイテムモデル内のデータを表示するためのプロキシクラス。詳細...

ヘッダー: #include <QItemModelScatterDataProxy>
CMake: find_package(Qt6 REQUIRED COMPONENTS Graphs)
target_link_libraries(mytarget PRIVATE Qt6::Graphs)
qmake: QT += graphs
QML内: ItemModelScatterDataProxy
継承元: QScatterDataProxy

プロパティ

パブリック関数

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

シグナル

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)

詳細な説明

QItemModelScatterDataProxy を使用すると、QAbstractItemModel を継承したモデルを、Q3DScatterWidgetItem のデータソースとして利用できます。これは、QAbstractItemModel の役割を、Q3DScatterWidgetItem ポイントの XYZ 値にマッピングします。

データの解決は、マッピングまたはモデルが変更されるたびに非同期で行われます。データが解決されると、QScatterDataProxy::arrayReset() が発行されます。ただし、モデルの初期化後の挿入、削除、および単一のデータ項目の変更は、同じフレーム内にモデル全体を解決させる変更が含まれていない限り、同期的に解決されます。

マッピングでは、QAbstractItemModel の行や列は無視され、すべての項目が均等に扱われます。これには、モデルがデータ項目に対して、散布図の点のX、Y、Z値にマッピング可能な役割を定義している必要があります。

たとえば、材料サンプルに対して行われたさまざまな測定値を格納するためのカスタムQAbstractItemModel があり、「密度」、「硬度」、「導電率」などのロールに対するデータを提供していると仮定します。このプロキシを使用すると、これらの特性を散布図で可視化できます。

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

モデルのフィールドに、必要な形式と完全に一致するデータが含まれていない場合は、各ロールに対して検索パターンの正規表現と置換ルールを指定し、必要な形式の値を取得することができます。 正規表現を使用した置換の仕組みの詳細については、QString::replace(constQRegularExpression &rx, constQString &after) 関数のドキュメントを参照してください。なお、正規表現の使用はパフォーマンスに影響を与えるため、目的の値を取得するために検索や置換が不要なアイテムモデルを利用するのがより効率的です。

たとえば、検索パターンをロールと組み合わせて使用する方法については、「Simple Bar Graph」におけるItemModelBarDataProxy の使用例を参照してください。

Qt Graphs の「3Dでのデータ処理」も参照してください 。

プロパティのドキュメント

itemModel : QAbstractItemModel*

このプロパティには、3D散布図シリーズのデータソースとして使用するアイテムモデルが格納されます。

アクセス関数:

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

通知シグナル:

void itemModelChanged(const QAbstractItemModel *itemModel)

rotationRole : QString

このプロパティは、アイテムの回転をマッピングするためのアイテムモデルの役割を担います。

このモデルは、回転の値を、QQuaternion に直接変換可能なバリアントとして、あるいは"scalar,x,y,z" または"@angle,x,y,z" といった文字列表現のいずれかとして提供することができます。前者の場合、指定された値を用いてクォータニオンが直接構築され、後者の場合、QQuaternion::fromAxisAndAngle()メソッドを使用してクォータニオンが構築されます。

アクセス関数:

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

通知シグナル:

void rotationRoleChanged(const QString &role)

rotationRolePattern : QRegularExpression

このプロパティは、ローテーションロールによってマッピングされた値が、アイテムのローテーションとして使用される前に、検索と置換が行われるかどうかを指定します。

このプロパティは、置換対象となるマッピング済み値の部分を特定するための正規表現を指定し、rotationRoleReplace プロパティには置換文字列が格納されます。

アクセス関数:

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

通知シグナル:

void rotationRolePatternChanged(const QRegularExpression &pattern)

関連項目: rotationRole およびrotationRoleReplace 。

rotationRoleReplace : QString

このプロパティには、回転ロールパターンと組み合わせて使用する置換内容が格納されます。

デフォルトは空の文字列です。正規表現を使用した検索および置換の仕組みの詳細については、QString::replace(constQRegularExpression &rx, constQString &after) 関数のドキュメントを参照してください。

アクセス関数:

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

Notifierシグナル:

void rotationRoleReplaceChanged(const QString &replace)

「 rotationRole 」および「rotationRolePattern 」も参照してください 。

scaleRole : QString

このプロパティは、アイテムスケールにマッピングするためのアイテムモデルの役割を担います。

モデルは、スケールの値として、"x,y,z" のいずれかのバリアントを指定できます。前者の場合、指定された値を用いてvector3dが直接構築されます。

アクセス関数:

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

通知シグナル:

void scaleRoleChanged(const QString &role)

scaleRolePattern : QRegularExpression

このプロパティは、スケールロールによってマッピングされた値が、アイテムのスケールとして使用される前に、検索と置換が行われるかどうかを指定します。

このプロパティは、置換対象となるマッピング済み値の一部を検索するための正規表現を指定し、scaleRoleReplace プロパティには置換文字列が格納されます。

アクセス関数:

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

通知シグナル:

void scaleRolePatternChanged(const QRegularExpression &pattern)

「 scaleRole 」および「scaleRoleReplace 」も参照してください 。

scaleRoleReplace : QString

このプロパティには、scale ロールパターンと組み合わせて使用する置換内容が格納されます。

デフォルトは空の文字列です。正規表現を使用した検索と置換の仕組みの詳細については、QString::replace(constQRegularExpression &rx, constQString &after) 関数のドキュメントを参照してください。

アクセス関数:

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

Notifierシグナル:

void scaleRoleReplaceChanged(const QString &replace)

「 scaleRole 」および「scaleRolePattern 」も参照してください 。

xPosRole : QString

このプロパティは、X座標にマッピングするためのアイテムモデルの役割を持ちます。

アクセス関数:

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

通知シグナル:

void xPosRoleChanged(const QString &role)

xPosRolePattern : QRegularExpression

このプロパティは、x 位置ロールによってマッピングされた値が、アイテムの位置値として使用される前に、検索と置換が行われるかどうかを指定します。

このプロパティは、置換対象となるマッピング済み値の一部を検索するための正規表現を指定し、xPosRoleReplace プロパティには置換文字列が格納されます。

アクセス関数:

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

通知シグナル:

void xPosRolePatternChanged(const QRegularExpression &pattern)

関連項目: xPosRole およびxPosRoleReplace 。

xPosRoleReplace : QString

このプロパティには、x 位置のロールパターンと組み合わせて使用する置換内容が格納されます。

デフォルト値は空文字列です。正規表現を使用した検索および置換の仕組みの詳細については、QString::replace(constQRegularExpression &rx, constQString &after) 関数のドキュメントを参照してください。

アクセス関数:

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

通知シグナル:

void xPosRoleReplaceChanged(const QString &replace)

「 xPosRole 」および「xPosRolePattern 」も参照してください 。

yPosRole : QString

このプロパティは、Y座標にマッピングするためのアイテムモデルの役割を担います。

アクセス関数:

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

通知信号:

void yPosRoleChanged(const QString &role)

yPosRolePattern : QRegularExpression

このプロパティは、y 位置ロールによってマッピングされた値が、アイテムの位置値として使用される前に、検索と置換が行われるかどうかを指定します。

このプロパティは、マップされた値の中から置換対象となる部分を見つけるための正規表現を指定し、yPosRoleReplace プロパティには置換文字列が格納されます。

アクセス関数:

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

通知シグナル:

void yPosRolePatternChanged(const QRegularExpression &pattern)

関連項目: yPosRole およびyPosRoleReplace 。

yPosRoleReplace : QString

このプロパティには、y 位置のロールパターンと組み合わせて使用される置換内容が格納されます。

デフォルトは空の文字列です。正規表現を使用した検索と置換の仕組みの詳細については、「QString::replace(constQRegularExpression &rx, constQString &after)」関数のドキュメントを参照してください。

アクセス関数:

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

通知シグナル:

void yPosRoleReplaceChanged(const QString &replace)

yPosRole およびyPosRolePatternも参照してください 。

zPosRole : QString

このプロパティは、Z位置にマッピングするためのアイテムモデルの役割を担います。

アクセス関数:

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

通知シグナル:

void zPosRoleChanged(const QString &role)

zPosRolePattern : QRegularExpression

このプロパティは、z 位置ロールによってマッピングされた値が、アイテムの位置値として使用される前に、検索と置換が行われるかどうかを指定します。

このプロパティは、マッピングされた値の中から置換対象となる部分を見つけるための正規表現を指定し、zPosRoleReplace プロパティには置換文字列が格納されます。

アクセス関数:

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

通知シグナル:

void zPosRolePatternChanged(const QRegularExpression &pattern)

関連項目: zPosRole およびzPosRoleReplace 。

zPosRoleReplace : QString

このプロパティには、z位置ロールパターンと組み合わせて使用する置換内容が格納されます。

デフォルトは空の文字列です。正規表現を使用した検索と置換の仕組みの詳細については、QString::replace(constQRegularExpression &rx, constQString &after) 関数のドキュメントを参照してください。

アクセス関数:

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

通知シグナル:

void zPosRoleReplaceChanged(const QString &replace)

関連項目: zPosRole およびzPosRolePattern 。

メンバ関数のドキュメント

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

オプションのparent を指定して、QItemModelScatterDataProxyを生成します。

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

itemModel と、オプションのparent を使用して、QItemModelScatterDataProxyを構築します。通常、アイテムモデルは他のコントロールによって所有されているため、このプロキシはitemModel の所有権を取得しません。

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

itemModel と、オプションのparent を使用して、QItemModelScatterDataProxyを構築します。アイテムモデルは通常、他のコントロールによって所有されているため、このプロキシはitemModel の所有権を取得しません。xPosRole プロパティにはxPosRole が、yPosRole プロパティにはyPosRole が、zPosRole プロパティにはzPosRole が設定されます。

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

itemModel と、オプションのparent を使用して、QItemModelScatterDataProxyを構築します。アイテムモデルは通常、他のコントロールによって所有されているため、このプロキシはitemModel の所有権を取得しません。xPosRole プロパティはxPosRole に、yPosRole プロパティはyPosRole に、zPosRole プロパティはzPosRole に、rotationRole プロパティはrotationRole に設定されます。

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

QItemModelScatterDataProxy を削除します。

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

xPosRole 、yPosRole 、zPosRole 、およびrotationRole のマッピングを変更しました。

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

xPosRole 、yPosRole 、zPosRole 、rotationRole 、およびscaleRole のマッピングが変更されました。

void QItemModelScatterDataProxy::setItemModel(QAbstractItemModel *itemModel)

Q3DScatterWidgetItem のアイテムモデルとしてitemModel を設定します。モデルの所有権を取得するわけではありませんが、モデルに接続して変更を監視します。

注: プロパティ `itemModel`のセッター 関数です。

関連項目: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.