PySide6.QtGraphs.QItemModelBarDataProxy¶
- class QItemModelBarDataProxy¶
用于在项目模型中展示数据的代理类,使用
Q3DBarsWidgetItem。更多…概要¶
属性¶
autoColumnCategoriesᅟ- 是否自动生成列类别autoRowCategoriesᅟ- 是否自动生成行类别columnCategoriesᅟ- 映射的列类别columnRoleᅟ- 映射的列角色columnRolePatternᅟ- 在使用列角色映射的值作为列类别之前,是否对其进行了搜索和替换columnRoleReplaceᅟ- 与columnRolePattern一起使用的替换内容itemModelᅟ- 项目模型multiMatchBehaviorᅟ- 如何处理每行/列组合的多个匹配项rotationRoleᅟ- 映射的旋转角色rotationRolePatternᅟ- 在使用映射的旋转角色值作为条形图旋转角度之前,是否对其进行了搜索和替换rotationRoleReplaceᅟ- 与rotationRolePattern一起使用的替换内容rowCategoriesᅟ- 映射的行类别rowRoleᅟ- 映射的行角色rowRolePatternᅟ- 在使用行角色映射的值作为行类别之前,是否对其执行搜索和替换操作rowRoleReplaceᅟ- 与rowRolePattern一起使用的替换内容useModelCategoriesᅟ- 是否使用行和列的角色和类别进行映射valueRoleᅟ- 映射的值角色valueRolePatternᅟ- 在使用映射值作为条形图值之前,是否对由值角色映射的值进行搜索和替换valueRoleReplaceᅟ- 与valueRolePattern一起使用的替换内容
方法¶
def
__init__()def
columnRole()def
itemModel()def
remap()def
rotationRole()def
rowCategories()def
rowRole()def
rowRolePattern()def
rowRoleReplace()def
setColumnRole()def
setItemModel()def
setRowRole()def
setValueRole()def
valueRole()
信号¶
def
rowRoleChanged()
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
QItemModelBarDataProxy允许你使用 QAbstractItemModel 派生模型作为Q3DBarsWidgetItem的数据源。它使用定义的映射将模型中的数据映射到Q3DBarsWidgetItem图表的行、列和值。每当映射或模型发生变化时,数据都会异步解析。当数据解析完成时,会发出
arrayReset()。然而,当useModelCategories属性设置为true时,单个项目的更改会同步解析,除非同一帧中还包含导致整个模型解析的更改。映射可以用于以下方式:
如果
useModelCategories属性设置为 true,此代理将直接将 QAbstractItemModel 的行和列映射到Q3DBarsWidgetItem的行和列,并默认使用 Qt::DisplayRole 返回的值作为条形值。如果 Qt::DisplayRole 不合适,可以重新定义要使用的值角色。对于没有数据已经整齐地排序成行和列的模型,例如基于QAbstractListModel的模型,您可以从模型中定义一个角色来映射每一行、列和值。
如果您不想包含模型中包含的所有数据,或者自动生成的行和列没有按照您的意愿排序,您可以通过为行和列中的任意一个或两者定义明确的类别列表来指定应包含哪些行和列以及它们的顺序。
例如,假设您有一个自定义的QAbstractItemModel用于存储与业务相关的各种月度值。模型中的每个项目都有“year”、“month”、“income”和“expenses”这些角色。您可以执行以下操作以在条形图中显示数据:
# By defining row and column categories, you tell the mapping which row and column each item # belongs to. The categories must match the data stored in the model in the roles you define # for row and column mapping. In this example we expect "year" role to return four digit year # and "month" to return three letter designation for the month. # # An example of an item in model would be: # Requested role -> Returned data # "year" -> "2016" // Matches the first row category, so this item is added to the first row. # "month" -> "jan" // Matches the first column category, so this item is added as first item in the row. # "income" -> "12.1" # "expenses" -> "9.2" years = QStringList() months = QStringList() years << "2016" << "2017" << "2018" << "2019" << "2020" << "2021" << "2022" months << "jan" << "feb" << "mar" << "apr" << "may" << "jun" << "jul" << "aug" << "sep" << "oct" << "nov" << "dec" proxy = QItemModelBarDataProxy(customModel,() "year", // Row role "month", // Column role "income", // Value role years, // Row categories months) # Column categories #... # To display different data later, you can simply change the mapping. proxy.setValueRole("expenses")
如果模型的字段不包含您所需的确切格式的数据,您可以为每个角色指定一个搜索模式正则表达式和一个替换规则,以获取所需格式的值。有关如何使用正则表达式进行替换的更多信息,请参阅QString::replace(const QRegularExpression ℞, const QString &after)函数文档。请注意,使用正则表达式会影响性能,因此在不需要进行搜索和替换即可获得所需值的情况下,使用项模型更为高效。
例如,关于将搜索模式与角色结合使用的示例,请参见 简单条形图 。
另请参阅
使用3D处理Qt图形数据
- class MultiMatchBehavior¶
multiMatchBehavior属性的行为类型。常量
描述
QItemModelBarDataProxy.MultiMatchBehavior.First
该值取自与每个行/列组合匹配的项目模型中的第一个项目。
QItemModelBarDataProxy.MultiMatchBehavior.Last
该值取自与每个行/列组合匹配的项目模型中的最后一项。
QItemModelBarDataProxy.MultiMatchBehavior.Average
匹配每个行/列组合的所有项目的值将被平均,平均值将用作条形图的值。
QItemModelBarDataProxy.MultiMatchBehavior.Cumulative
匹配每个行/列组合的所有项目的值相加,总和用作条形值。
注意
当使用
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¶
此属性保存映射的列角色。
- Access functions:
- property columnRolePatternᅟ: QRegularExpression¶
此属性保存是否在将列角色映射的值用作列类别之前对其进行搜索和替换。
此属性指定用于查找要替换的映射值部分的正则表达式,而
columnRoleReplace属性包含替换字符串。这在例如从项目模型中的单个时间戳字段解析行和列类别时非常有用。- Access functions:
- property columnRoleReplaceᅟ: str¶
此属性保存与
columnRolePattern一起使用的替换内容。默认为空字符串。有关如何使用正则表达式进行搜索和替换的更多信息,请参阅 QString::replace(const QRegularExpression ℞, const QString &after) 函数文档。
- Access functions:
- property itemModelᅟ: QAbstractItemModel¶
此属性保存项目模型。
- Access functions:
- property multiMatchBehaviorᅟ: QItemModelBarDataProxy.MultiMatchBehavior¶
此属性决定了如何处理每行/列组合的多个匹配项。
默认为
Last。所选行为会影响条形值和旋转。例如,您可能有一个包含不规则间隔时间戳数据的项目模型,并且您希望使用条形图可视化每天数据项的总价值。这可以通过指定行和列类别来实现,以便每个条形代表一天,并将multiMatchBehavior设置为
Cumulative。- Access functions:
- property rotationRoleᅟ: str¶
此属性保存映射的旋转角色。
- Access functions:
- property rotationRolePatternᅟ: QRegularExpression¶
此属性保存是否在将旋转角色映射的值用作条形旋转角度之前对其进行搜索和替换。
此属性指定用于查找要替换的映射值部分的正则表达式,而
rotationRoleReplace属性包含替换字符串。- Access functions:
- property rotationRoleReplaceᅟ: str¶
此属性保存与
rotationRolePattern一起使用的替换内容。默认为空字符串。有关如何使用正则表达式进行搜索和替换的更多信息,请参阅 QString::replace(const QRegularExpression ℞, const QString &after) 函数文档。
- Access functions:
- property rowCategoriesᅟ: list of strings¶
此属性保存映射的行类别。
- Access functions:
- property rowRoleᅟ: str¶
此属性保存映射的行角色。
- Access functions:
- property rowRolePatternᅟ: QRegularExpression¶
此属性保存是否在将行角色映射的值用作行类别之前对其执行搜索和替换。
此属性指定用于查找要替换的映射值部分的正则表达式,而
rowRoleReplace属性包含替换字符串。这在例如从项目模型中的单个时间戳字段解析行和列类别时非常有用。另请参阅
- Access functions:
- property rowRoleReplaceᅟ: str¶
此属性保存与
rowRolePattern一起使用的替换内容。默认为空字符串。有关如何使用正则表达式进行搜索和替换的更多信息,请参阅 QString::replace(const QRegularExpression ℞, const QString &after) 函数文档。
另请参阅
- Access functions:
- property useModelCategoriesᅟ: bool¶
此属性保存是否使用行和列角色及类别进行映射。
当设置为
true时,映射将忽略行和列的角色和类别,并使用模型中的行和列。默认为false。- Access functions:
- property valueRoleᅟ: str¶
此属性保存映射的值角色。
- Access functions:
- property valueRolePatternᅟ: QRegularExpression¶
此属性保存是否在将值角色映射的值用作条形值之前对其进行搜索和替换。
此属性指定用于查找要替换的映射值部分的正则表达式,而
valueRoleReplace属性包含替换字符串。- Access functions:
- property valueRoleReplaceᅟ: str¶
此属性保存与
valueRolePattern一起使用的替换内容。默认为空字符串。有关如何使用正则表达式进行搜索和替换的更多信息,请参阅 QString::replace(const QRegularExpression ℞, const QString &after) 函数文档。
- Access functions:
使用可选的
parent构造QItemModelBarDataProxy。- __init__(itemModel[, parent=None])
- Parameters:
itemModel –
QAbstractItemModelparent –
QObject
使用
itemModel和一个可选的parent构造QItemModelBarDataProxy。代理不会获取itemModel的所有权,因为通常项目模型由其他控件拥有。- __init__(itemModel, valueRole[, parent=None])
- Parameters:
itemModel –
QAbstractItemModelvalueRole – str
parent –
QObject
使用
itemModel和一个可选的parent构造QItemModelBarDataProxy。代理不拥有itemModel的所有权,因为通常项目模型由其他控件拥有。值角色设置为valueRole。此构造函数旨在用于数据已经按行和列正确排序的模型,因此它还将useModelCategories属性设置为true。- __init__(itemModel, rowRole, columnRole, valueRole[, parent=None])
- Parameters:
itemModel –
QAbstractItemModelrowRole – str
columnRole – str
valueRole – str
parent –
QObject
使用
itemModel和一个可选的parent构造QItemModelBarDataProxy。代理不会获取itemModel的所有权,因为通常项目模型由其他控件拥有。角色映射通过rowRole、columnRole和valueRole设置。- __init__(itemModel, rowRole, columnRole, valueRole, rotationRole[, parent=None])
- Parameters:
itemModel –
QAbstractItemModelrowRole – str
columnRole – str
valueRole – str
rotationRole – str
parent –
QObject
使用
itemModel和一个可选的parent构造QItemModelBarDataProxy。代理不会获取itemModel的所有权,因为通常项目模型由其他控件拥有。角色映射通过rowRole、columnRole、valueRole和rotationRole设置。- __init__(itemModel, rowRole, columnRole, valueRole, rowCategories, columnCategories[, parent=None])
- Parameters:
itemModel –
QAbstractItemModelrowRole – str
columnRole – str
valueRole – str
rowCategories – 字符串列表
columnCategories – 字符串列表
parent –
QObject
使用
itemModel和一个可选的parent构造QItemModelBarDataProxy。代理不拥有itemModel的所有权,因为通常项目模型由其他控件拥有。角色映射通过rowRole、columnRole和valueRole设置。行和列类别通过rowCategories和columnCategories设置。此构造函数还将autoRowCategories和autoColumnCategories设置为false。- __init__(itemModel, rowRole, columnRole, valueRole, rotationRole, rowCategories, columnCategories[, parent=None])
- Parameters:
itemModel –
QAbstractItemModelrowRole – str
columnRole – str
valueRole – str
rotationRole – str
rowCategories – 字符串列表
columnCategories – 字符串列表
parent –
QObject
使用
itemModel和一个可选的parent构造QItemModelBarDataProxy。代理不会获取itemModel的所有权,因为通常项目模型由其他控件拥有。角色映射通过rowRole、columnRole、valueRole和rotationRole设置。行和列类别通过rowCategories和columnCategories设置。此构造函数还将autoRowCategories和autoColumnCategories设置为false。- autoColumnCategories()¶
- Return type:
布尔
属性
autoColumnCategoriesᅟ的获取器。- autoColumnCategoriesChanged(enable)¶
- Parameters:
enable – 布尔值
属性
autoColumnCategoriesᅟ的通知信号。- autoRowCategories()¶
- Return type:
布尔
属性
autoRowCategoriesᅟ的获取器。- autoRowCategoriesChanged(enable)¶
- Parameters:
enable – 布尔值
属性
autoRowCategoriesᅟ的通知信号。- columnCategories()¶
- Return type:
字符串列表
属性
columnCategoriesᅟ的获取器。- columnCategoriesChanged()¶
属性
columnCategoriesᅟ的通知信号。- columnCategoryIndex(category)¶
- Parameters:
类别 – str
- Return type:
整数
返回指定
category在列类别列表中的索引。如果未找到该类别,则返回-1。注意
如果使用自动列类别生成,在模型中的数据首次解析之前,此方法将不会返回有效的索引。
- columnRole()¶
- Return type:
字符串
另请参阅
属性
columnRoleᅟ的获取器。- columnRoleChanged(role)¶
- Parameters:
role – str
属性
columnRoleᅟ的通知信号。- columnRolePattern()¶
- Return type:
属性
columnRolePatternᅟ的获取器。- columnRolePatternChanged(pattern)¶
- Parameters:
pattern –
QRegularExpression
属性
columnRolePatternᅟ的通知信号。- columnRoleReplace()¶
- Return type:
字符串
属性
columnRoleReplaceᅟ的获取器。- columnRoleReplaceChanged(replace)¶
- Parameters:
replace – 字符串
属性
columnRoleReplaceᅟ的通知信号。- itemModel()¶
- Return type:
另请参阅
属性
itemModelᅟ的获取器。- itemModelChanged(itemModel)¶
- Parameters:
itemModel –
QAbstractItemModel
属性
itemModelᅟ的通知信号。- multiMatchBehavior()¶
- Return type:
属性
multiMatchBehaviorᅟ的获取器。- multiMatchBehaviorChanged(behavior)¶
- Parameters:
行为 –
MultiMatchBehavior
属性
multiMatchBehaviorᅟ的通知信号。- remap(rowRole, columnRole, valueRole, rotationRole, rowCategories, columnCategories)¶
- Parameters:
rowRole – str
columnRole – str
valueRole – str
rotationRole – str
rowCategories – 字符串列表
columnCategories – 字符串列表
将
rowRole、columnRole、valueRole、rotationRole、rowCategories和columnCategories更改为映射。- rotationRole()¶
- Return type:
字符串
另请参阅
属性
rotationRoleᅟ的获取器。- rotationRoleChanged(role)¶
- Parameters:
role – str
属性
rotationRoleᅟ的通知信号。- rotationRolePattern()¶
- Return type:
属性
rotationRolePatternᅟ的获取器。- rotationRolePatternChanged(pattern)¶
- Parameters:
pattern –
QRegularExpression
属性
rotationRolePatternᅟ的通知信号。- rotationRoleReplace()¶
- Return type:
字符串
属性
rotationRoleReplaceᅟ的获取器。- rotationRoleReplaceChanged(replace)¶
- Parameters:
replace – 字符串
属性
rotationRoleReplaceᅟ的通知信号。- rowCategories()¶
- Return type:
字符串列表
另请参阅
属性
rowCategoriesᅟ的获取器。- rowCategoriesChanged()¶
属性
rowCategoriesᅟ的通知信号。- rowCategoryIndex(category)¶
- Parameters:
类别 – str
- Return type:
整数
返回指定
category在行类别列表中的索引。如果行类别列表为空,则返回-1。注意
如果正在使用自动行类别生成,在模型中的数据首次解析之前,此方法将不会返回有效的索引。
- rowRole()¶
- Return type:
字符串
另请参阅
属性
rowRoleᅟ的获取器。- rowRoleChanged(role)¶
- Parameters:
role – str
属性
rowRoleᅟ的通知信号。- rowRolePattern()¶
- Return type:
另请参阅
属性
rowRolePatternᅟ的获取器。- rowRolePatternChanged(pattern)¶
- Parameters:
pattern –
QRegularExpression
属性
rowRolePatternᅟ的通知信号。- rowRoleReplace()¶
- Return type:
字符串
另请参阅
属性
rowRoleReplaceᅟ的获取器。- rowRoleReplaceChanged(replace)¶
- Parameters:
replace – 字符串
属性
rowRoleReplaceᅟ的通知信号。- setAutoColumnCategories(enable)¶
- Parameters:
enable – 布尔值
属性
autoColumnCategoriesᅟ的设置器。- setAutoRowCategories(enable)¶
- Parameters:
enable – 布尔值
另请参阅
属性
autoRowCategoriesᅟ的设置器。- setColumnCategories(categories)¶
- Parameters:
categories – 字符串列表
另请参阅
属性
columnCategoriesᅟ的设置器。- setColumnRole(role)¶
- Parameters:
role – str
另请参阅
属性
columnRoleᅟ的设置器。- setColumnRolePattern(pattern)¶
- Parameters:
pattern –
QRegularExpression
另请参阅
属性
columnRolePatternᅟ的设置器。- setColumnRoleReplace(replace)¶
- Parameters:
replace – 字符串
另请参阅
属性
columnRoleReplaceᅟ的设置器。- setItemModel(itemModel)¶
- Parameters:
itemModel –
QAbstractItemModel
将项目模型设置为
itemModel。不拥有模型的所有权,但会连接到模型以监听变化。另请参阅
属性
itemModelᅟ的设置器。- setMultiMatchBehavior(behavior)¶
- Parameters:
行为 –
MultiMatchBehavior
另请参阅
属性
multiMatchBehaviorᅟ的设置器。- setRotationRole(role)¶
- Parameters:
role – str
另请参阅
属性
rotationRoleᅟ的设置器。- setRotationRolePattern(pattern)¶
- Parameters:
pattern –
QRegularExpression
属性
rotationRolePatternᅟ的设置器。- setRotationRoleReplace(replace)¶
- Parameters:
replace – 字符串
属性
rotationRoleReplaceᅟ的设置器。- setRowCategories(categories)¶
- Parameters:
categories – 字符串列表
另请参阅
属性
rowCategoriesᅟ的设置器。属性
rowRoleᅟ的设置器。- setRowRolePattern(pattern)¶
- Parameters:
pattern –
QRegularExpression
另请参阅
属性
rowRolePatternᅟ的设置器。- setRowRoleReplace(replace)¶
- Parameters:
replace – 字符串
另请参阅
属性
rowRoleReplaceᅟ的设置器。- setUseModelCategories(enable)¶
- Parameters:
enable – 布尔值
另请参阅
属性
useModelCategoriesᅟ的设置器。- setValueRole(role)¶
- Parameters:
role – str
另请参阅
属性
valueRoleᅟ的设置器。- setValueRolePattern(pattern)¶
- Parameters:
pattern –
QRegularExpression
另请参阅
属性
valueRolePatternᅟ的设置器。- setValueRoleReplace(replace)¶
- Parameters:
replace – 字符串
另请参阅
属性
valueRoleReplaceᅟ的设置器。- useModelCategories()¶
- Return type:
布尔
属性
useModelCategoriesᅟ的获取器。- useModelCategoriesChanged(enable)¶
- Parameters:
enable – 布尔值
属性
useModelCategoriesᅟ的通知信号。- valueRole()¶
- Return type:
字符串
另请参阅
属性
valueRoleᅟ的获取器。- valueRoleChanged(role)¶
- Parameters:
role – str
属性
valueRoleᅟ的通知信号。- valueRolePattern()¶
- Return type:
属性
valueRolePatternᅟ的获取器。- valueRolePatternChanged(pattern)¶
- Parameters:
pattern –
QRegularExpression
属性
valueRolePatternᅟ的通知信号。- valueRoleReplace()¶
- Return type:
字符串
属性
valueRoleReplaceᅟ的获取器。- valueRoleReplaceChanged(replace)¶
- Parameters:
replace – 字符串
属性
valueRoleReplaceᅟ的通知信号。