QItemModelScatterDataProxy 类

提供以 Q3DScatter 显示数据的项模型代理类。 更多...

头文件 #include <QItemModelScatterDataProxy>
CMakefind_package(Qt6 REQUIRED COMPONENTS Graphs)
target_link_libraries(mytarget PRIVATE Qt6::Graphs)
qmakeQT += graphs
由以下类实例化 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
voidremap(const QString &xPosRole, const QString &yPosRole, const QString &zPosRole, const QString &rotationRole)
QStringrotationRole() const
QRegularExpressionrotationRolePattern() const
QStringrotationRoleReplace() const
voidsetItemModel(QAbstractItemModel *itemModel)
voidsetRotationRole(const QString &role)
voidsetRotationRolePattern(const QRegularExpression &pattern)
voidsetRotationRoleReplace(const QString &replace)
voidsetXPosRole(const QString &role)
voidsetXPosRolePattern(const QRegularExpression &pattern)
voidsetXPosRoleReplace(const QString &replace)
voidsetYPosRole(const QString &role)
voidsetYPosRolePattern(const QRegularExpression &pattern)
voidsetYPosRoleReplace(const QString &replace)
voidsetZPosRole(const QString &role)
voidsetZPosRolePattern(const QRegularExpression &pattern)
voidsetZPosRoleReplace(const QString &replace)
QStringxPosRole() const
QRegularExpressionxPosRolePattern() const
QStringxPosRoleReplace() const
QStringyPosRole() const
QRegularExpressionyPosRolePattern() const
QStringyPosRoleReplace() const
QStringzPosRole() const
QRegularExpressionzPosRolePattern() const
QStringzPosRoleReplace() const

信号

voiditemModelChanged(const QAbstractItemModel *itemModel)
voidrotationRoleChanged(const QString &role)
voidrotationRolePatternChanged(const QRegularExpression &pattern)
voidrotationRoleReplaceChanged(const QString &replace)
voidxPosRoleChanged(const QString &role)
voidxPosRolePatternChanged(const QRegularExpression &pattern)
voidxPosRoleReplaceChanged(const QString &replace)
voidyPosRoleChanged(const QString &role)
voidyPosRolePatternChanged(const QRegularExpression &pattern)
voidyPosRoleReplaceChanged(const QString &replace)
voidzPosRoleChanged(const QString &role)
voidzPosRolePatternChanged(const QRegularExpression &pattern)
voidzPosRoleReplaceChanged(const QString &replace)

详细说明

QItemModelScatterDataProxy 允许您将派生自 QAbstractItemModel 的模型作为 Q3DScatter 的数据源使用。它将 QAbstractItemModel 的角色映射到 Q3DScatter 点的 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(const QRegularExpression &rx, const QString &after) 函数的文档。请注意,使用正则表达式会影响性能,因此在使用搜索和替换来获取所需值时不需要利用项模型可以更加高效。

例如,有关使用搜索模式与角色一起使用的信息,请参阅在 Simple Bar Graph 中的 ItemModelBarDataProxy 的用法。

另请参阅 Qt Graphs 数据处理与 3D

属性文档

itemModel : QAbstractItemModel*

此属性用于承载用作 3D 散点序列数据源的项模型。

访问函数

QAbstractItemModel *itemModel() const
voidsetItemModel(QAbstractItemModel *itemModel)

通知信号

voiditemModelChanged(const QAbstractItemModel *itemModel)

rotationRole : QString

此属性承载映射到项旋转的项模型角色。

模型可以为旋转值提供可直接转换为 QQuaternion 的变体,或为以下字符串表示形式之一: "scalar,x,y,z""@angle,x,y,z"。前者将使用给定的值直接构造四元数,而后者将使用 QQuaternion::fromAxisAndAngle() 方法构造四元数。

访问函数

QStringrotationRole() const
voidsetRotationRole(const QString &role)

通知信号

voidrotationRoleChanged(const QString &role)

rotationRolePattern : QRegularExpression

此属性表示在将该值用作项旋转之前是否对旋转角色的映射值执行搜索和替换。

此属性指定要替换映射值的正则表达式,而 rotationRoleReplace 属性包含替换字符串。

访问函数

QRegularExpressionrotationRolePattern() const
voidsetRotationRolePattern(const QRegularExpression &pattern)

通知信号

voidrotationRolePatternChanged(const QRegularExpression &pattern)

另请参阅rotationRolerotationRoleReplace

rotationRoleReplace : QString

此属性用于与旋转角色模式一起使用的替换内容。

默认值是一个空字符串。有关正则表达式搜索和替换的更多信息,请参阅QString::replace(const QRegularExpression &rx, const QString &after)函数文档。

访问函数

QStringrotationRoleReplace() const
voidsetRotationRoleReplace(const QString &replace)

通知信号

voidrotationRoleReplaceChanged(const QString &replace)

另请参阅rotationRolerotationRolePattern

xPosRole : QString

此属性用于将项目模型角色映射到X位置。

访问函数

QStringxPosRole() const
voidsetXPosRole(const QString &role)

通知信号

voidxPosRoleChanged(const QString &role)

xPosRolePattern : QRegularExpression

此属性表示是否在用作项目位置值之前对x位置角色映射的值进行搜索和替换。

此属性指定要替换的映射值的正则表达式,xPosRoleReplace属性包含替换字符串。

访问函数

QRegularExpressionxPosRolePattern() const
voidsetXPosRolePattern(const QRegularExpression &pattern)

通知信号

voidxPosRolePatternChanged(const QRegularExpression &pattern)

另请参阅xPosRolexPosRoleReplace

xPosRoleReplace : QString

此属性用于与x位置角色模式一起使用的替换内容。

默认值是一个空字符串。有关正则表达式搜索和替换的更多信息,请参阅QString::replace(const QRegularExpression &rx, const QString &after)函数文档。

访问函数

QStringxPosRoleReplace() const
voidsetXPosRoleReplace(const QString &replace)

通知信号

voidxPosRoleReplaceChanged(const QString &replace)

另请参阅xPosRolexPosRolePattern

yPosRole : QString

此属性用于将项目模型角色映射到Y位置。

访问函数

QStringyPosRole() const
voidsetYPosRole(const QString &role)

通知信号

voidyPosRoleChanged(const QString &role)

yPosRolePattern : QRegularExpression

此属性表示是否在用作项目位置值之前对y位置角色映射的值进行搜索和替换。

此属性指定用于查找要替换的映射值部分的正则表达式,而 yPosRoleReplace 属性包含替换字符串。

访问函数

QRegularExpressionyPosRolePattern() const
voidsetYPosRolePattern(const QRegularExpression &pattern)

通知信号

voidyPosRolePatternChanged(const QRegularExpression &pattern)

另请参阅 yPosRoleyPosRoleReplace

yPosRoleReplace : QString

此属性用于存储与 y 位置角色模式一起使用的替换内容。

默认值是一个空字符串。有关正则表达式搜索和替换的更多信息,请参阅QString::replace(const QRegularExpression &rx, const QString &after)函数文档。

访问函数

QStringyPosRoleReplace() const
voidsetYPosRoleReplace(const QString &replace)

通知信号

voidyPosRoleReplaceChanged(const QString &replace)

另请参阅 yPosRoleyPosRolePattern

zPosRole : QString

此属性用于存储映射到 Z 位置的项模型角色。

访问函数

QStringzPosRole() const
voidsetZPosRole(const QString &role)

通知信号

voidzPosRoleChanged(const QString &role)

zPosRolePattern : QRegularExpression

此属性表示在使用项位置值之前是否在 z 位置角色映射的值上进行搜索和替换。

此属性指定用于查找要替换的映射值部分的正则表达式,而 zPosRoleReplace 属性包含替换字符串。

访问函数

QRegularExpressionzPosRolePattern() const
voidsetZPosRolePattern(const QRegularExpression &pattern)

通知信号

voidzPosRolePatternChanged(const QRegularExpression &pattern)

另请参阅 zPosRolezPosRoleReplace

zPosRoleReplace : QString

此属性用于存储与 z 位置角色模式一起使用的替换内容。

默认值是一个空字符串。有关正则表达式搜索和替换的更多信息,请参阅QString::replace(const QRegularExpression &rx, const QString &after)函数文档。

访问函数

QStringzPosRoleReplace() const
voidsetZPosRoleReplace(const QString &replace)

通知信号

voidzPosRoleReplaceChanged(const QString &replace)

另请参阅 zPosRolezPosRolePattern

成员函数文档

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

使用可选的 parent 构造 QItemModelScatterDataProxy。

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

使用 itemModel 和可选的 parent 构造 QItemModelScatterDataProxy。代理不拥有 itemModel 的所有权,因为通常项模型由其他控件拥有。

[显式] 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

[显式] 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

[重写虚函数 noexcept] QItemModelScatterDataProxy::~QItemModelScatterDataProxy()

销毁 QItemModelScatterDataProxy

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

更改 xPosRoleyPosRolezPosRolerotationRole 映射。

void QItemModelScatterDataProxy::setItemModel(QAbstractItemModel *itemModel)

itemModel 设置为 Q3DScatter 的项目模型。不拥有该模型,但会连接到它以监听更改。

注意:属性 itemModel 的设置函数。

另请参阅:itemModel

© 2024 The Qt Company Ltd. 本文档中的文档贡献均为其各自所有者的版权。本提供的文档受 GNU 自由文档许可证版本 1.3 的条款约束,由自由软件基金会发布。Qt 和相应的徽标是芬兰和/或在其他国家的 The Qt Company Ltd. 的商标。所有其他商标均为其各自所有者的财产。