PySide6.QtGraphs.QItemModelSurfaceDataProxy

class QItemModelSurfaceDataProxy

用于在项目模型中展示数据的代理类,使用Q3DSurfaceWidgetItem更多

PySide6.QtGraphs.QItemModelSurfaceDataProxy 的继承图

概要

属性

方法

信号

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述

警告

本节包含从C++自动翻译到Python的代码片段,可能包含错误。

QItemModelSurfaceDataProxy 允许你使用 QAbstractItemModel 派生模型作为 Q3DSurfaceWidgetItem 的数据源。它使用定义的映射将模型中的数据映射到 Q3DSurfaceWidgetItem 图表的行、列和表面点。

每当映射或模型发生变化时,数据都会异步解析。当数据解析完成时,会发出arrayReset()。然而,当useModelCategories属性设置为true时,单个项目的更改会同步解析,除非同一帧中还包含导致整个模型解析的更改。

映射可以用于以下方式:

  • 如果useModelCategories属性设置为true,此代理将把QAbstractItemModel的行和列映射到Q3DSurfaceWidgetItem的行和列,并默认使用Qt::DisplayRole返回的值作为Y位置。如果行和列标题可以转换为浮点数,则默认使用它们作为Z位置和X位置。否则,使用行和列索引。如果Qt::DisplayRole不合适,可以重新定义要使用的Y位置角色。如果标题或索引不合适,可以重新定义要使用的Z位置和X位置角色。

  • 对于没有将数据整齐地排序成行和列的模型,例如基于QAbstractListModel的模型,您可以从模型中定义一个角色来映射每一行、列和Y位置。

  • 如果您不想包含模型中包含的所有数据,或者自动生成的行和列没有按照您的意愿排序,您可以通过为行和列中的任意一个或两者定义明确的类别列表来指定应包含哪些行和列以及它们的顺序。

例如,假设您有一个自定义的QAbstractItemModel存储表面地形数据。模型中的每个项目都有“经度”、“纬度”和“高度”的角色。项目模型已经包含了正确排序的数据,以便经度和纬度首先以正确的顺序遇到,这使我们能够利用行和列类别的自动生成。您可以执行以下操作以在表面图中显示数据:

proxy = QItemModelSurfaceDataProxy(customModel,()
                                                                   "longitude", // Row role
                                                                   "latitude", // Column role
                                                                   "height") # Y-position role

如果模型的字段不包含您所需的确切格式的数据,您可以为每个角色指定一个搜索模式正则表达式和一个替换规则,以获取所需格式的值。有关如何使用正则表达式进行替换的更多信息,请参阅QString::replace(const QRegularExpression ℞, const QString &after)函数文档。请注意,使用正则表达式会影响性能,因此在不需要进行搜索和替换即可获得所需值的情况下,使用项模型更为高效。

例如,关于将搜索模式与角色结合使用的示例,请参见ItemModelBarDataProxy简单条形图中的用法。

另请参阅

使用3D处理Qt图形数据

class MultiMatchBehavior

multiMatchBehavior 属性的行为类型。

常量

描述

QItemModelSurfaceDataProxy.MultiMatchBehavior.First

位置值取自与每个行/列组合匹配的项目模型中的第一个项目。

QItemModelSurfaceDataProxy.MultiMatchBehavior.Last

位置值取自与每个行/列组合匹配的项目模型中的最后一项。

QItemModelSurfaceDataProxy.MultiMatchBehavior.Average

匹配每个行/列组合的所有项目的位置值被平均在一起,平均值被用作表面点位置。

QItemModelSurfaceDataProxy.MultiMatchBehavior.CumulativeY

对于X和Z值,这就像Average一样,但Y值是相加而不是取平均值,总和用作表面点的Y位置。

注意

当使用from __feature__ import true_property时,属性可以直接使用,否则通过访问器函数使用。

property autoColumnCategoriesᅟ: bool

此属性保存是否自动生成列类别。

当设置为true时,映射会忽略任何显式设置的列类别,并在解析模型数据时用自动生成的类别覆盖它们。默认为true

Access functions:
property autoRowCategoriesᅟ: bool

此属性保存是否自动生成行类别。

当设置为true时,映射会忽略任何显式设置的行类别,并在解析模型数据时用自动生成的类别覆盖它们。默认为true

Access functions:
property columnCategoriesᅟ: list of strings

此属性保存映射的列类别。

Access functions:
property columnRoleᅟ: str

此属性保存要映射到列类别的项目模型角色。

除了定义数据属于哪一列外,当模型数据被解析时,列角色指示的值也被设置为QSurfaceDataItem的X坐标值,除非还定义了单独的x位置角色。

Access functions:
property columnRolePatternᅟ: QRegularExpression

此属性保存是否在将列角色映射的值用作列类别之前对其进行搜索和替换。

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

Access functions:
property columnRoleReplaceᅟ: str

此属性保存与列角色模式一起使用的替换内容。

默认为空字符串。有关如何使用正则表达式进行搜索和替换的更多信息,请参阅 QString::replace(const QRegularExpression ℞, const QString &after) 函数文档。

Access functions:
property itemModelᅟ: QAbstractItemModel

此属性保存用作3D曲面数据源的项模型。

Access functions:
property multiMatchBehaviorᅟ: QItemModelSurfaceDataProxy.MultiMatchBehavior

此属性决定了如何处理每行/列组合的多个匹配项。

默认为最后。

例如,您可能有一个包含不规则间隔时间戳数据的项目模型,并且您希望使用曲面图可视化每小时数据项的平均位置。这可以通过指定行和列类别来实现,以便每个曲面点代表一个小时,并将此属性设置为平均值。

Access functions:
property rowCategoriesᅟ: list of strings

此属性保存映射的行类别。

Access functions:
property rowRoleᅟ: str

此属性保存要映射到行类别的项目模型角色。

除了定义数据所属的行之外,当模型数据被解析时,行角色指示的值也被设置为QSurfaceDataItem的Z坐标值,除非还定义了单独的z位置角色。

Access functions:
property rowRolePatternᅟ: QRegularExpression

此属性保存是否在将行角色映射的值用作行类别之前对其执行搜索和替换。

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

另请参阅

rowRole rowRoleReplace

Access functions:
property rowRoleReplaceᅟ: str

此属性保存与行角色模式一起使用的替换内容。

默认为空字符串。有关如何使用正则表达式进行搜索和替换的更多信息,请参阅 QString::replace(const QRegularExpression ℞, const QString &after) 函数文档。

另请参阅

rowRole rowRolePattern

Access functions:
property useModelCategoriesᅟ: bool

此属性保存是否使用行和列角色及类别进行映射。

当设置为true时,映射忽略行和列的角色和类别,并使用模型中的行和列。默认为false

Access functions:
property xPosRoleᅟ: str

此属性保存要映射到X位置的项模型角色。

如果未定义此角色,则使用columnRole来确定已解析的QSurfaceDataItem对象的X坐标值。

Access functions:
property xPosRolePatternᅟ: QRegularExpression

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

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

另请参阅

xPosRole xPosRoleReplace

Access functions:
property xPosRoleReplaceᅟ: str

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

默认为空字符串。有关如何使用正则表达式进行搜索和替换的更多信息,请参阅 QString::replace(const QRegularExpression ℞, const QString &after) 函数文档。

另请参阅

xPosRole xPosRolePattern

Access functions:
property yPosRoleᅟ: str

此属性保存要映射到Y位置的项模型角色。

Access functions:
property yPosRolePatternᅟ: QRegularExpression

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

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

另请参阅

yPosRole yPosRoleReplace

Access functions:
property yPosRoleReplaceᅟ: str

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

默认为空字符串。有关如何使用正则表达式进行搜索和替换的更多信息,请参阅 QString::replace(const QRegularExpression ℞, const QString &after) 函数文档。

另请参阅

yPosRole yPosRolePattern

Access functions:
property zPosRoleᅟ: str

此属性保存要映射到Z坐标的项模型角色。

如果未定义此角色,rowRole 用于确定已解析的 QSurfaceDataItem 对象的 Z 坐标值。

Access functions:
property zPosRolePatternᅟ: QRegularExpression

此属性保存是否在将z位置角色映射的值用作项目位置值之前对其进行搜索和替换。

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

另请参阅

zPosRole zPosRoleReplace

Access functions:
property zPosRoleReplaceᅟ: str

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

默认为空字符串。有关如何使用正则表达式进行搜索和替换的更多信息,请参阅 QString::replace(const QRegularExpression ℞, const QString &after) 函数文档。

另请参阅

zPosRole zPosRolePattern

Access functions:
__init__([parent=None])
Parameters:

父对象QObject

使用可选的parent构造QItemModelSurfaceDataProxy

__init__(itemModel[, parent=None])
Parameters:

使用 itemModel 和一个可选的 parent 构造 QItemModelSurfaceDataProxy。代理不会获取 itemModel 的所有权,因为通常项目模型由其他控件拥有。

__init__(itemModel, yPosRole[, parent=None])
Parameters:

使用itemModel和一个可选的parent构造QItemModelSurfaceDataProxy。代理不拥有itemModel的所有权,因为通常项目模型由其他控件拥有。yPosRole角色设置为yPosRole。此构造函数旨在用于已经按行和列正确排序数据的模型,因此它还设置useModelCategories属性为true

__init__(itemModel, rowRole, columnRole, yPosRole[, parent=None])
Parameters:

使用itemModel和一个可选的parent构造QItemModelSurfaceDataProxy。代理不会获取itemModel的所有权,因为通常项目模型由其他控件拥有。角色映射通过rowRolecolumnRoleyPosRole设置。zPosRolexPosRole分别设置为rowRolecolumnRole

__init__(itemModel, rowRole, columnRole, xPosRole, yPosRole, zPosRole[, parent=None])
Parameters:
  • itemModelQAbstractItemModel

  • rowRole – str

  • columnRole – str

  • xPosRole – str

  • yPosRole – str

  • zPosRole – str

  • parentQObject

使用itemModel和一个可选的parent构造QItemModelSurfaceDataProxy。代理不会获取itemModel的所有权,因为通常项目模型由其他控件拥有。角色映射通过rowRolecolumnRolexPosRoleyPosRolezPosRole设置。

__init__(itemModel, rowRole, columnRole, yPosRole, rowCategories, columnCategories[, parent=None])
Parameters:
  • itemModelQAbstractItemModel

  • rowRole – str

  • columnRole – str

  • yPosRole – str

  • rowCategories – 字符串列表

  • columnCategories – 字符串列表

  • parentQObject

使用itemModel和一个可选的parent构造QItemModelSurfaceDataProxy。代理不会获取itemModel的所有权,因为通常项目模型由其他控件拥有。角色映射通过rowRolecolumnRoleyPosRole设置。zPosRolexPosRole分别设置为rowRolecolumnRole。行和列类别通过rowCategoriescolumnCategories设置。此构造函数还将autoRowCategoriesautoColumnCategories设置为false。

__init__(itemModel, rowRole, columnRole, xPosRole, yPosRole, zPosRole, rowCategories, columnCategories[, parent=None])
Parameters:
  • itemModelQAbstractItemModel

  • rowRole – str

  • columnRole – str

  • xPosRole – str

  • yPosRole – str

  • zPosRole – str

  • rowCategories – 字符串列表

  • columnCategories – 字符串列表

  • parentQObject

使用itemModel和一个可选的parent构造QItemModelSurfaceDataProxy。代理不拥有itemModel的所有权,因为通常项目模型由其他控件拥有。角色映射通过rowRolecolumnRolexPosRoleyPosRolezPosRole设置。行和列类别通过rowCategoriescolumnCategories设置。此构造函数还将autoRowCategoriesautoColumnCategories设置为false。

autoColumnCategories()
Return type:

布尔

属性 autoColumnCategoriesᅟ 的获取器。

autoColumnCategoriesChanged(enable)
Parameters:

enable – 布尔值

属性 autoColumnCategoriesᅟ 的通知信号。

autoRowCategories()
Return type:

布尔

另请参阅

setAutoRowCategories()

属性 autoRowCategoriesᅟ 的获取器。

autoRowCategoriesChanged(enable)
Parameters:

enable – 布尔值

属性 autoRowCategoriesᅟ 的通知信号。

columnCategories()
Return type:

字符串列表

另请参阅

setColumnCategories()

属性 columnCategoriesᅟ 的获取器。

columnCategoriesChanged()

属性 columnCategoriesᅟ 的通知信号。

columnCategoryIndex(category)
Parameters:

类别 – str

Return type:

整数

返回指定category在列类别列表中的索引。如果未找到该类别,则返回-1。

注意

如果使用自动列类别生成,在模型中的数据首次解析之前,此方法将不会返回有效的索引。

columnRole()
Return type:

字符串

另请参阅

setColumnRole()

属性 columnRoleᅟ 的获取器。

columnRoleChanged(role)
Parameters:

role – str

属性 columnRoleᅟ 的通知信号。

columnRolePattern()
Return type:

QRegularExpression

另请参阅

setColumnRolePattern()

属性 columnRolePatternᅟ 的获取器。

columnRolePatternChanged(pattern)
Parameters:

patternQRegularExpression

属性 columnRolePatternᅟ 的通知信号。

columnRoleReplace()
Return type:

字符串

另请参阅

setColumnRoleReplace()

属性 columnRoleReplaceᅟ 的获取器。

columnRoleReplaceChanged(replace)
Parameters:

replace – 字符串

属性 columnRoleReplaceᅟ 的通知信号。

itemModel()
Return type:

QAbstractItemModel

另请参阅

setItemModel()

属性 itemModelᅟ 的获取器。

itemModelChanged(itemModel)
Parameters:

itemModelQAbstractItemModel

属性 itemModelᅟ 的通知信号。

multiMatchBehavior()
Return type:

MultiMatchBehavior

属性 multiMatchBehaviorᅟ 的获取器。

multiMatchBehaviorChanged(behavior)
Parameters:

行为MultiMatchBehavior

属性 multiMatchBehaviorᅟ 的通知信号。

remap(rowRole, columnRole, xPosRole, yPosRole, zPosRole, rowCategories, columnCategories)
Parameters:
  • rowRole – str

  • columnRole – str

  • xPosRole – str

  • yPosRole – str

  • zPosRole – str

  • rowCategories – 字符串列表

  • columnCategories – 字符串列表

rowRolecolumnRolexPosRoleyPosRolezPosRolerowCategoriescolumnCategories更改为映射。

rowCategories()
Return type:

字符串列表

另请参阅

setRowCategories()

属性 rowCategoriesᅟ 的获取器。

rowCategoriesChanged()

属性 rowCategoriesᅟ 的通知信号。

rowCategoryIndex(category)
Parameters:

类别 – str

Return type:

整数

返回指定category在行类别列表中的索引。如果行类别列表为空,则返回-1。

注意

如果正在使用自动行类别生成,在模型中的数据首次解析之前,此方法将不会返回有效的索引。

rowRole()
Return type:

字符串

另请参阅

setRowRole()

属性 rowRoleᅟ 的获取器。

rowRoleChanged(role)
Parameters:

role – str

属性 rowRoleᅟ 的通知信号。

rowRolePattern()
Return type:

QRegularExpression

另请参阅

setRowRolePattern()

属性 rowRolePatternᅟ 的获取器。

rowRolePatternChanged(pattern)
Parameters:

patternQRegularExpression

属性 rowRolePatternᅟ 的通知信号。

rowRoleReplace()
Return type:

字符串

另请参阅

setRowRoleReplace()

属性 rowRoleReplaceᅟ 的获取器。

rowRoleReplaceChanged(replace)
Parameters:

replace – 字符串

属性 rowRoleReplaceᅟ 的通知信号。

setAutoColumnCategories(enable)
Parameters:

enable – 布尔值

另请参阅

autoColumnCategories()

属性 autoColumnCategoriesᅟ 的设置器。

setAutoRowCategories(enable)
Parameters:

enable – 布尔值

另请参阅

autoRowCategories()

属性 autoRowCategoriesᅟ 的设置器。

setColumnCategories(categories)
Parameters:

categories – 字符串列表

另请参阅

columnCategories()

属性 columnCategoriesᅟ 的设置器。

setColumnRole(role)
Parameters:

role – str

另请参阅

columnRole()

属性 columnRoleᅟ 的设置器。

setColumnRolePattern(pattern)
Parameters:

patternQRegularExpression

另请参阅

columnRolePattern()

属性 columnRolePatternᅟ 的设置器。

setColumnRoleReplace(replace)
Parameters:

replace – 字符串

另请参阅

columnRoleReplace()

属性 columnRoleReplaceᅟ 的设置器。

setItemModel(itemModel)
Parameters:

itemModelQAbstractItemModel

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

另请参阅

itemModel()

属性 itemModelᅟ 的设置器。

setMultiMatchBehavior(behavior)
Parameters:

行为MultiMatchBehavior

另请参阅

multiMatchBehavior()

属性 multiMatchBehaviorᅟ 的设置器。

setRowCategories(categories)
Parameters:

categories – 字符串列表

另请参阅

rowCategories()

属性 rowCategoriesᅟ 的设置器。

setRowRole(role)
Parameters:

role – str

另请参阅

rowRole()

属性 rowRoleᅟ 的设置器。

setRowRolePattern(pattern)
Parameters:

patternQRegularExpression

另请参阅

rowRolePattern()

属性 rowRolePatternᅟ 的设置器。

setRowRoleReplace(replace)
Parameters:

replace – 字符串

另请参阅

rowRoleReplace()

属性 rowRoleReplaceᅟ 的设置器。

setUseModelCategories(enable)
Parameters:

enable – 布尔值

另请参阅

useModelCategories()

属性 useModelCategoriesᅟ 的设置器。

setXPosRole(role)
Parameters:

role – str

另请参阅

xPosRole()

属性 xPosRoleᅟ 的设置器。

setXPosRolePattern(pattern)
Parameters:

patternQRegularExpression

另请参阅

xPosRolePattern()

属性 xPosRolePatternᅟ 的设置器。

setXPosRoleReplace(replace)
Parameters:

replace – 字符串

另请参阅

xPosRoleReplace()

属性 xPosRoleReplaceᅟ 的设置器。

setYPosRole(role)
Parameters:

role – str

另请参阅

yPosRole()

属性 yPosRoleᅟ 的设置器。

setYPosRolePattern(pattern)
Parameters:

patternQRegularExpression

另请参阅

yPosRolePattern()

属性 yPosRolePatternᅟ 的设置器。

setYPosRoleReplace(replace)
Parameters:

replace – 字符串

另请参阅

yPosRoleReplace()

属性 yPosRoleReplaceᅟ 的设置器。

setZPosRole(role)
Parameters:

role – str

另请参阅

zPosRole()

属性 zPosRoleᅟ 的设置器。

setZPosRolePattern(pattern)
Parameters:

patternQRegularExpression

另请参阅

zPosRolePattern()

属性 zPosRolePatternᅟ 的设置器。

setZPosRoleReplace(replace)
Parameters:

replace – 字符串

另请参阅

zPosRoleReplace()

属性 zPosRoleReplaceᅟ 的设置器。

useModelCategories()
Return type:

布尔

属性 useModelCategoriesᅟ 的获取器。

useModelCategoriesChanged(enable)
Parameters:

enable – 布尔值

属性 useModelCategoriesᅟ 的通知信号。

xPosRole()
Return type:

字符串

另请参阅

setXPosRole()

属性 xPosRoleᅟ 的获取器。

xPosRoleChanged(role)
Parameters:

role – str

属性 xPosRoleᅟ 的通知信号。

xPosRolePattern()
Return type:

QRegularExpression

另请参阅

setXPosRolePattern()

属性 xPosRolePatternᅟ 的获取器。

xPosRolePatternChanged(pattern)
Parameters:

patternQRegularExpression

属性 xPosRolePatternᅟ 的通知信号。

xPosRoleReplace()
Return type:

字符串

另请参阅

setXPosRoleReplace()

属性 xPosRoleReplaceᅟ 的获取器。

xPosRoleReplaceChanged(replace)
Parameters:

replace – 字符串

属性 xPosRoleReplaceᅟ 的通知信号。

yPosRole()
Return type:

字符串

另请参阅

setYPosRole()

属性 yPosRoleᅟ 的获取器。

yPosRoleChanged(role)
Parameters:

role – str

属性 yPosRoleᅟ 的通知信号。

yPosRolePattern()
Return type:

QRegularExpression

另请参阅

setYPosRolePattern()

属性 yPosRolePatternᅟ 的获取器。

yPosRolePatternChanged(pattern)
Parameters:

patternQRegularExpression

属性 yPosRolePatternᅟ 的通知信号。

yPosRoleReplace()
Return type:

字符串

另请参阅

setYPosRoleReplace()

属性 yPosRoleReplaceᅟ 的获取器。

yPosRoleReplaceChanged(replace)
Parameters:

replace – 字符串

属性 yPosRoleReplaceᅟ 的通知信号。

zPosRole()
Return type:

字符串

另请参阅

setZPosRole()

属性 zPosRoleᅟ 的获取器。

zPosRoleChanged(role)
Parameters:

role – str

属性 zPosRoleᅟ 的通知信号。

zPosRolePattern()
Return type:

QRegularExpression

另请参阅

setZPosRolePattern()

属性 zPosRolePatternᅟ 的获取器。

zPosRolePatternChanged(pattern)
Parameters:

patternQRegularExpression

属性 zPosRolePatternᅟ 的通知信号。

zPosRoleReplace()
Return type:

字符串

另请参阅

setZPosRoleReplace()

属性 zPosRoleReplaceᅟ 的获取器。

zPosRoleReplaceChanged(replace)
Parameters:

replace – 字符串

属性 zPosRoleReplaceᅟ 的通知信号。