QItemModelBarDataProxy¶
Proxy class for presenting data in item models with Q3DBars
. More…
Synopsis¶
Functions¶
def
autoColumnCategories
()def
autoRowCategories
()def
columnCategories
()def
columnCategoryIndex
(category)def
columnRole
()def
columnRolePattern
()def
columnRoleReplace
()def
itemModel
()def
multiMatchBehavior
()def
remap
(rowRole, columnRole, valueRole, rotationRole, rowCategories, columnCategories)def
rotationRole
()def
rotationRolePattern
()def
rotationRoleReplace
()def
rowCategories
()def
rowCategoryIndex
(category)def
rowRole
()def
rowRolePattern
()def
rowRoleReplace
()def
setAutoColumnCategories
(enable)def
setAutoRowCategories
(enable)def
setColumnCategories
(categories)def
setColumnRole
(role)def
setColumnRolePattern
(pattern)def
setColumnRoleReplace
(replace)def
setItemModel
(itemModel)def
setMultiMatchBehavior
(behavior)def
setRotationRole
(role)def
setRotationRolePattern
(pattern)def
setRotationRoleReplace
(replace)def
setRowCategories
(categories)def
setRowRole
(role)def
setRowRolePattern
(pattern)def
setRowRoleReplace
(replace)def
setUseModelCategories
(enable)def
setValueRole
(role)def
setValueRolePattern
(pattern)def
setValueRoleReplace
(replace)def
useModelCategories
()def
valueRole
()def
valueRolePattern
()def
valueRoleReplace
()
Signals¶
def
autoColumnCategoriesChanged
(enable)def
autoRowCategoriesChanged
(enable)def
columnCategoriesChanged
()def
columnRoleChanged
(role)def
columnRolePatternChanged
(pattern)def
columnRoleReplaceChanged
(replace)def
itemModelChanged
(itemModel)def
multiMatchBehaviorChanged
(behavior)def
rotationRoleChanged
(role)def
rotationRolePatternChanged
(pattern)def
rotationRoleReplaceChanged
(replace)def
rowCategoriesChanged
()def
rowRoleChanged
(role)def
rowRolePatternChanged
(pattern)def
rowRoleReplaceChanged
(replace)def
useModelCategoriesChanged
(enable)def
valueRoleChanged
(role)def
valueRolePatternChanged
(pattern)def
valueRoleReplaceChanged
(replace)
Detailed Description¶
QItemModelBarDataProxy
allows you to use QAbstractItemModel
derived models as a data source for Q3DBars
. It uses the defined mappings to map data from the model to rows, columns, and values of Q3DBars
graph.
The data is resolved asynchronously whenever mappings or the model changes. arrayReset()
is emitted when the data has been resolved. However, when useModelCategories
property is set to true, single item changes are resolved synchronously, unless the same frame also contains a change that causes the whole model to be resolved.
Mappings can be used in the following ways:
If
useModelCategories
property is set to true, this proxy will map rows and columns ofQAbstractItemModel
directly to rows and columns ofQ3DBars
, and uses the value returned forDisplayRole
as bar value by default. The value role to be used can be redefined ifDisplayRole
is not suitable.For models that do not have data already neatly sorted into rows and columns, such as
QAbstractListModel
based models, you can define a role from the model to map for each of row, column and value.If you do not want to include all data contained in the model, or the autogenerated rows and columns are not ordered as you wish, you can specify which rows and columns should be included and in which order by defining an explicit list of categories for either or both of rows and columns.
For example, assume that you have a custom QAbstractItemModel
for storing various monthly values related to a business. Each item in the model has the roles “year”, “month”, “income”, and “expenses”. You could do the following to display the data in a bar graph:
# 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" -> "2006" // 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 << "2006" << "2007" << "2008" << "2009" << "2010" << "2011" << "2012" months << "jan" << "feb" << "mar" << "apr" << "may" << "jun" << "jul" << "aug" << "sep" << "oct" << "nov" << "dec" proxy = QItemModelBarDataProxy(customModel,() QStringLiteral("year"), // Row role QStringLiteral("month"), // Column role QStringLiteral("income"), // Value role years, // Row categories months) # Column categories #... # To display different data later, you can simply change the mapping. proxy.setValueRole(QStringLiteral("expenses"))
If the fields of the model do not contain the data in the exact format you need, you can specify a search pattern regular expression and a replace rule for each role to get the value in a format you need. For more information how the replace using regular expressions works, see replace
(const QRegularExpression
&rx, const QString
&after) function documentation. Note that using regular expressions has an impact on the performance, so it’s more efficient to utilize item models where doing search and replace is not necessary to get the desired values.
For example about using the search patterns in conjunction with the roles, see Qt Quick 2 Bars Example .
See also
- class PySide6.QtDataVisualization.QItemModelBarDataProxy(itemModel[, parent=None])¶
PySide6.QtDataVisualization.QItemModelBarDataProxy(itemModel, rowRole, columnRole, valueRole[, parent=None])
PySide6.QtDataVisualization.QItemModelBarDataProxy(itemModel, rowRole, columnRole, valueRole, rotationRole[, parent=None])
PySide6.QtDataVisualization.QItemModelBarDataProxy(itemModel, rowRole, columnRole, valueRole, rotationRole, rowCategories, columnCategories[, parent=None])
PySide6.QtDataVisualization.QItemModelBarDataProxy(itemModel, rowRole, columnRole, valueRole, rowCategories, columnCategories[, parent=None])
PySide6.QtDataVisualization.QItemModelBarDataProxy(itemModel, valueRole[, parent=None])
PySide6.QtDataVisualization.QItemModelBarDataProxy([parent=None])
- Parameters
rowCategories – list of strings
rowRole – str
valueRole – str
columnCategories – list of strings
rotationRole – str
columnRole – str
itemModel –
PySide6.QtCore.QAbstractItemModel
parent –
PySide6.QtCore.QObject
Constructs QItemModelBarDataProxy
with itemModel
and optional parent
. Proxy doesn’t take ownership of the itemModel
, as typically item models are owned by other controls.
Constructs QItemModelBarDataProxy
with itemModel
and optional parent
. Proxy doesn’t take ownership of the itemModel
, as typically item models are owned by other controls. The role mappings are set with rowRole
, columnRole
, and valueRole
.
Constructs QItemModelBarDataProxy
with itemModel
and optional parent
. Proxy doesn’t take ownership of the itemModel
, as typically item models are owned by other controls. The role mappings are set with rowRole
, columnRole
, valueRole
, and rotationRole
.
Constructs QItemModelBarDataProxy
with itemModel
and optional parent
. Proxy doesn’t take ownership of the itemModel
, as typically item models are owned by other controls. The role mappings are set with rowRole
, columnRole
, valueRole
, and rotationRole
. Row and column categories are set with rowCategories
and columnCategories
. This constructor also sets autoRowCategories
and autoColumnCategories
to false.
Constructs QItemModelBarDataProxy
with itemModel
and optional parent
. Proxy doesn’t take ownership of the itemModel
, as typically item models are owned by other controls. The role mappings are set with rowRole
, columnRole
, and valueRole
. Row and column categories are set with rowCategories
and columnCategories
. This constructor also sets autoRowCategories
and autoColumnCategories
to false.
Constructs QItemModelBarDataProxy
with itemModel
and optional parent
. Proxy doesn’t take ownership of the itemModel
, as typically item models are owned by other controls. The value role is set to valueRole
. This constructor is meant to be used with models that have data properly sorted in rows and columns already, so it also sets useModelCategories
property to true.
Constructs QItemModelBarDataProxy
with optional parent
.
- PySide6.QtDataVisualization.QItemModelBarDataProxy.MultiMatchBehavior¶
Behavior types for multiMatchBehavior
property.
Constant
Description
QItemModelBarDataProxy.MMBFirst
The value is taken from the first item in the item model that matches each row/column combination.
QItemModelBarDataProxy.MMBLast
The value is taken from the last item in the item model that matches each row/column combination.
QItemModelBarDataProxy.MMBAverage
The values from all items matching each row/column combination are averaged together and the average is used as the bar value.
QItemModelBarDataProxy.MMBCumulative
The values from all items matching each row/column combination are added together and the total is used as the bar value.
- PySide6.QtDataVisualization.QItemModelBarDataProxy.autoColumnCategories()¶
- Return type
bool
This property holds Whether column categories are generated automatically..
When set to true
, the mapping ignores any explicitly set column categories and overwrites them with automatically generated ones whenever the data from model is resolved. Defaults to true
.
- PySide6.QtDataVisualization.QItemModelBarDataProxy.autoColumnCategoriesChanged(enable)¶
- Parameters
enable – bool
- PySide6.QtDataVisualization.QItemModelBarDataProxy.autoRowCategories()¶
- Return type
bool
This property holds Whether row categories are generated automatically..
When set to true
, the mapping ignores any explicitly set row categories and overwrites them with automatically generated ones whenever the data from model is resolved. Defaults to true
.
- PySide6.QtDataVisualization.QItemModelBarDataProxy.autoRowCategoriesChanged(enable)¶
- Parameters
enable – bool
- PySide6.QtDataVisualization.QItemModelBarDataProxy.columnCategories()¶
- Return type
list of strings
This property holds The column categories for the mapping..
- PySide6.QtDataVisualization.QItemModelBarDataProxy.columnCategoriesChanged()¶
- PySide6.QtDataVisualization.QItemModelBarDataProxy.columnCategoryIndex(category)¶
- Parameters
category – str
- Return type
int
Returns the index of the specified category
in column categories list. If the category is not found, -1 is returned.
Note
If the automatic column categories generation is in use, this method will not return a valid index before the data in the model is resolved for the first time.
- PySide6.QtDataVisualization.QItemModelBarDataProxy.columnRole()¶
- Return type
str
This property holds The column role for the mapping..
- PySide6.QtDataVisualization.QItemModelBarDataProxy.columnRoleChanged(role)¶
- Parameters
role – str
- PySide6.QtDataVisualization.QItemModelBarDataProxy.columnRolePattern()¶
- Return type
This property holds Whether a search and replace is done on the value mapped by column role before it is used as a column category..
This property specifies the regular expression to find the portion of the mapped value to replace and columnRoleReplace
property contains the replacement string. This is useful for example in parsing row and column categories from a single timestamp field in the item model.
See also
- PySide6.QtDataVisualization.QItemModelBarDataProxy.columnRolePatternChanged(pattern)¶
- Parameters
pattern –
PySide6.QtCore.QRegularExpression
- PySide6.QtDataVisualization.QItemModelBarDataProxy.columnRoleReplace()¶
- Return type
str
This property holds The replace content to be used in conjunction with columnRolePattern
..
Defaults to empty string. For more information on how the search and replace using regular expressions works, see replace
(const QRegularExpression
&rx, const QString
&after) function documentation.
See also
- PySide6.QtDataVisualization.QItemModelBarDataProxy.columnRoleReplaceChanged(replace)¶
- Parameters
replace – str
- PySide6.QtDataVisualization.QItemModelBarDataProxy.itemModel()¶
- Return type
This property holds The item model..
- PySide6.QtDataVisualization.QItemModelBarDataProxy.itemModelChanged(itemModel)¶
- Parameters
itemModel –
PySide6.QtCore.QAbstractItemModel
- PySide6.QtDataVisualization.QItemModelBarDataProxy.multiMatchBehavior()¶
- Return type
This property holds How multiple matches for each row/column combination are handled..
Defaults to MMBLast
. The chosen behavior affects both bar value and rotation.
For example, you might have an item model with timestamped data taken at irregular intervals and you want to visualize total value of data items on each day with a bar graph. This can be done by specifying row and column categories so that each bar represents a day, and setting to MMBCumulative
.
- PySide6.QtDataVisualization.QItemModelBarDataProxy.multiMatchBehaviorChanged(behavior)¶
- Parameters
behavior –
MultiMatchBehavior
- PySide6.QtDataVisualization.QItemModelBarDataProxy.remap(rowRole, columnRole, valueRole, rotationRole, rowCategories, columnCategories)¶
- Parameters
rowRole – str
columnRole – str
valueRole – str
rotationRole – str
rowCategories – list of strings
columnCategories – list of strings
Changes rowRole
, columnRole
, valueRole
, rotationRole
, rowCategories
and columnCategories
to the mapping.
- PySide6.QtDataVisualization.QItemModelBarDataProxy.rotationRole()¶
- Return type
str
This property holds The rotation role for the mapping..
- PySide6.QtDataVisualization.QItemModelBarDataProxy.rotationRoleChanged(role)¶
- Parameters
role – str
- PySide6.QtDataVisualization.QItemModelBarDataProxy.rotationRolePattern()¶
- Return type
This property holds Whether a search and replace is done on the value mapped by rotation role before it is used as a bar rotation angle..
This property specifies the regular expression to find the portion of the mapped value to replace and rotationRoleReplace
property contains the replacement string.
See also
- PySide6.QtDataVisualization.QItemModelBarDataProxy.rotationRolePatternChanged(pattern)¶
- Parameters
pattern –
PySide6.QtCore.QRegularExpression
- PySide6.QtDataVisualization.QItemModelBarDataProxy.rotationRoleReplace()¶
- Return type
str
This property holds The replace content to be used in conjunction with rotationRolePattern
..
Defaults to empty string. For more information on how the search and replace using regular expressions works, see replace
(const QRegularExpression
&rx, const QString
&after) function documentation.
See also
- PySide6.QtDataVisualization.QItemModelBarDataProxy.rotationRoleReplaceChanged(replace)¶
- Parameters
replace – str
- PySide6.QtDataVisualization.QItemModelBarDataProxy.rowCategories()¶
- Return type
list of strings
This property holds The row categories for the mapping..
- PySide6.QtDataVisualization.QItemModelBarDataProxy.rowCategoriesChanged()¶
- PySide6.QtDataVisualization.QItemModelBarDataProxy.rowCategoryIndex(category)¶
- Parameters
category – str
- Return type
int
Returns the index of the specified category
in row categories list. If the row categories list is empty, -1 is returned.
Note
If the automatic row categories generation is in use, this method will not return a valid index before the data in the model is resolved for the first time.
- PySide6.QtDataVisualization.QItemModelBarDataProxy.rowRole()¶
- Return type
str
This property holds The row role for the mapping..
- PySide6.QtDataVisualization.QItemModelBarDataProxy.rowRoleChanged(role)¶
- Parameters
role – str
- PySide6.QtDataVisualization.QItemModelBarDataProxy.rowRolePattern()¶
- Return type
This property holds Whether a search and replace is performed on the value mapped by row role before it is used as a row category..
This property specifies the regular expression to find the portion of the mapped value to replace and rowRoleReplace
property contains the replacement string. This is useful for example in parsing row and column categories from a single timestamp field in the item model.
See also
- PySide6.QtDataVisualization.QItemModelBarDataProxy.rowRolePatternChanged(pattern)¶
- Parameters
pattern –
PySide6.QtCore.QRegularExpression
- PySide6.QtDataVisualization.QItemModelBarDataProxy.rowRoleReplace()¶
- Return type
str
This property holds The replace content to be used in conjunction with rowRolePattern
..
Defaults to empty string. For more information on how the search and replace using regular expressions works, see replace
(const QRegularExpression
&rx, const QString
&after) function documentation.
See also
- PySide6.QtDataVisualization.QItemModelBarDataProxy.rowRoleReplaceChanged(replace)¶
- Parameters
replace – str
- PySide6.QtDataVisualization.QItemModelBarDataProxy.setAutoColumnCategories(enable)¶
- Parameters
enable – bool
This property holds Whether column categories are generated automatically..
When set to true
, the mapping ignores any explicitly set column categories and overwrites them with automatically generated ones whenever the data from model is resolved. Defaults to true
.
- PySide6.QtDataVisualization.QItemModelBarDataProxy.setAutoRowCategories(enable)¶
- Parameters
enable – bool
This property holds Whether row categories are generated automatically..
When set to true
, the mapping ignores any explicitly set row categories and overwrites them with automatically generated ones whenever the data from model is resolved. Defaults to true
.
- PySide6.QtDataVisualization.QItemModelBarDataProxy.setColumnCategories(categories)¶
- Parameters
categories – list of strings
This property holds The column categories for the mapping..
- PySide6.QtDataVisualization.QItemModelBarDataProxy.setColumnRole(role)¶
- Parameters
role – str
This property holds The column role for the mapping..
- PySide6.QtDataVisualization.QItemModelBarDataProxy.setColumnRolePattern(pattern)¶
- Parameters
pattern –
PySide6.QtCore.QRegularExpression
This property holds Whether a search and replace is done on the value mapped by column role before it is used as a column category..
This property specifies the regular expression to find the portion of the mapped value to replace and columnRoleReplace
property contains the replacement string. This is useful for example in parsing row and column categories from a single timestamp field in the item model.
See also
- PySide6.QtDataVisualization.QItemModelBarDataProxy.setColumnRoleReplace(replace)¶
- Parameters
replace – str
This property holds The replace content to be used in conjunction with columnRolePattern
..
Defaults to empty string. For more information on how the search and replace using regular expressions works, see replace
(const QRegularExpression
&rx, const QString
&after) function documentation.
See also
- PySide6.QtDataVisualization.QItemModelBarDataProxy.setItemModel(itemModel)¶
- Parameters
itemModel –
PySide6.QtCore.QAbstractItemModel
This property holds The item model..
- PySide6.QtDataVisualization.QItemModelBarDataProxy.setMultiMatchBehavior(behavior)¶
- Parameters
behavior –
MultiMatchBehavior
This property holds How multiple matches for each row/column combination are handled..
Defaults to MMBLast
. The chosen behavior affects both bar value and rotation.
For example, you might have an item model with timestamped data taken at irregular intervals and you want to visualize total value of data items on each day with a bar graph. This can be done by specifying row and column categories so that each bar represents a day, and setting to MMBCumulative
.
- PySide6.QtDataVisualization.QItemModelBarDataProxy.setRotationRole(role)¶
- Parameters
role – str
This property holds The rotation role for the mapping..
- PySide6.QtDataVisualization.QItemModelBarDataProxy.setRotationRolePattern(pattern)¶
- Parameters
pattern –
PySide6.QtCore.QRegularExpression
This property holds Whether a search and replace is done on the value mapped by rotation role before it is used as a bar rotation angle..
This property specifies the regular expression to find the portion of the mapped value to replace and rotationRoleReplace
property contains the replacement string.
See also
- PySide6.QtDataVisualization.QItemModelBarDataProxy.setRotationRoleReplace(replace)¶
- Parameters
replace – str
This property holds The replace content to be used in conjunction with rotationRolePattern
..
Defaults to empty string. For more information on how the search and replace using regular expressions works, see replace
(const QRegularExpression
&rx, const QString
&after) function documentation.
See also
- PySide6.QtDataVisualization.QItemModelBarDataProxy.setRowCategories(categories)¶
- Parameters
categories – list of strings
This property holds The row categories for the mapping..
- PySide6.QtDataVisualization.QItemModelBarDataProxy.setRowRole(role)¶
- Parameters
role – str
This property holds The row role for the mapping..
- PySide6.QtDataVisualization.QItemModelBarDataProxy.setRowRolePattern(pattern)¶
- Parameters
pattern –
PySide6.QtCore.QRegularExpression
This property holds Whether a search and replace is performed on the value mapped by row role before it is used as a row category..
This property specifies the regular expression to find the portion of the mapped value to replace and rowRoleReplace
property contains the replacement string. This is useful for example in parsing row and column categories from a single timestamp field in the item model.
See also
- PySide6.QtDataVisualization.QItemModelBarDataProxy.setRowRoleReplace(replace)¶
- Parameters
replace – str
This property holds The replace content to be used in conjunction with rowRolePattern
..
Defaults to empty string. For more information on how the search and replace using regular expressions works, see replace
(const QRegularExpression
&rx, const QString
&after) function documentation.
See also
- PySide6.QtDataVisualization.QItemModelBarDataProxy.setUseModelCategories(enable)¶
- Parameters
enable – bool
This property holds Whether row and column roles and categories are used for mapping..
When set to true
, the mapping ignores row and column roles and categories, and uses the rows and columns from the model instead. Defaults to false
.
- PySide6.QtDataVisualization.QItemModelBarDataProxy.setValueRole(role)¶
- Parameters
role – str
This property holds The value role for the mapping..
- PySide6.QtDataVisualization.QItemModelBarDataProxy.setValueRolePattern(pattern)¶
- Parameters
pattern –
PySide6.QtCore.QRegularExpression
This property holds Whether a search and replace is done on the value mapped by value role before it is used as a bar value..
This property specifies the regular expression to find the portion of the mapped value to replace and valueRoleReplace
property contains the replacement string.
See also
- PySide6.QtDataVisualization.QItemModelBarDataProxy.setValueRoleReplace(replace)¶
- Parameters
replace – str
This property holds The replace content to be used in conjunction with valueRolePattern
..
Defaults to empty string. For more information on how the search and replace using regular expressions works, see replace
(const QRegularExpression
&rx, const QString
&after) function documentation.
See also
- PySide6.QtDataVisualization.QItemModelBarDataProxy.useModelCategories()¶
- Return type
bool
This property holds Whether row and column roles and categories are used for mapping..
When set to true
, the mapping ignores row and column roles and categories, and uses the rows and columns from the model instead. Defaults to false
.
- PySide6.QtDataVisualization.QItemModelBarDataProxy.useModelCategoriesChanged(enable)¶
- Parameters
enable – bool
- PySide6.QtDataVisualization.QItemModelBarDataProxy.valueRole()¶
- Return type
str
This property holds The value role for the mapping..
- PySide6.QtDataVisualization.QItemModelBarDataProxy.valueRoleChanged(role)¶
- Parameters
role – str
- PySide6.QtDataVisualization.QItemModelBarDataProxy.valueRolePattern()¶
- Return type
This property holds Whether a search and replace is done on the value mapped by value role before it is used as a bar value..
This property specifies the regular expression to find the portion of the mapped value to replace and valueRoleReplace
property contains the replacement string.
See also
- PySide6.QtDataVisualization.QItemModelBarDataProxy.valueRolePatternChanged(pattern)¶
- Parameters
pattern –
PySide6.QtCore.QRegularExpression
- PySide6.QtDataVisualization.QItemModelBarDataProxy.valueRoleReplace()¶
- Return type
str
This property holds The replace content to be used in conjunction with valueRolePattern
..
Defaults to empty string. For more information on how the search and replace using regular expressions works, see replace
(const QRegularExpression
&rx, const QString
&after) function documentation.
See also
- PySide6.QtDataVisualization.QItemModelBarDataProxy.valueRoleReplaceChanged(replace)¶
- Parameters
replace – str
© 2022 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.