QItemModelScatterDataProxy 类
提供以 Q3DScatter 显示数据的项模型代理类。 更多...
头文件 | #include <QItemModelScatterDataProxy> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Graphs) target_link_libraries(mytarget PRIVATE Qt6::Graphs) |
qmake | QT += graphs |
由以下类实例化 | ItemModelScatterDataProxy |
继承自 | QScatterDataProxy |
状态 | 技术预览 |
- 包括继承成员在内的所有成员列表
- QItemModelScatterDataProxy 是 Qt 图表 C++ 3D 类的一部分:Qt Graphs C++ Classes for 3D。
属性
|
|
公有函数
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) |
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 |
信号
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) |
详细说明
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 |
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(const QRegularExpression &rx, const QString &after)函数文档。
访问函数
QString | rotationRoleReplace() const |
void | setRotationRoleReplace(const QString &replace) |
通知信号
void | rotationRoleReplaceChanged(const QString &replace) |
另请参阅rotationRole和rotationRolePattern。
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(const QRegularExpression &rx, const QString &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(const QRegularExpression &rx, const QString &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(const QRegularExpression &rx, const QString &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 的所有权,因为通常项模型由其他控件拥有。
[显式]
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)
更改 xPosRole,yPosRole,zPosRole 和 rotationRole 映射。
void QItemModelScatterDataProxy::setItemModel(QAbstractItemModel *itemModel)
将 itemModel 设置为 Q3DScatter 的项目模型。不拥有该模型,但会连接到它以监听更改。
注意:属性 itemModel 的设置函数。
另请参阅:itemModel。
© 2024 The Qt Company Ltd. 本文档中的文档贡献均为其各自所有者的版权。本提供的文档受 GNU 自由文档许可证版本 1.3 的条款约束,由自由软件基金会发布。Qt 和相应的徽标是芬兰和/或在其他国家的 The Qt Company Ltd. 的商标。所有其他商标均为其各自所有者的财产。