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 –
QAbstractItemModel
parent –
QObject
使用
itemModel
和一个可选的parent
构造QItemModelBarDataProxy
。代理不会获取itemModel
的所有权,因为通常项目模型由其他控件拥有。- __init__(itemModel, valueRole[, parent=None])
- Parameters:
itemModel –
QAbstractItemModel
valueRole – str
parent –
QObject
使用
itemModel
和一个可选的parent
构造QItemModelBarDataProxy
。代理不拥有itemModel
的所有权,因为通常项目模型由其他控件拥有。值角色设置为valueRole
。此构造函数旨在用于数据已经按行和列正确排序的模型,因此它还将useModelCategories
属性设置为true。- __init__(itemModel, rowRole, columnRole, valueRole[, parent=None])
- Parameters:
itemModel –
QAbstractItemModel
rowRole – str
columnRole – str
valueRole – str
parent –
QObject
使用
itemModel
和一个可选的parent
构造QItemModelBarDataProxy
。代理不会获取itemModel
的所有权,因为通常项目模型由其他控件拥有。角色映射通过rowRole
、columnRole
和valueRole
设置。- __init__(itemModel, rowRole, columnRole, valueRole, rotationRole[, parent=None])
- Parameters:
itemModel –
QAbstractItemModel
rowRole – 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 –
QAbstractItemModel
rowRole – 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 –
QAbstractItemModel
rowRole – 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ᅟ
的通知信号。