QItemModelBarDataProxy#

Proxy class for presenting data in item models with Q3DBars . More

Inheritance diagram of PySide6.QtDataVisualization.QItemModelBarDataProxy

Synopsis#

Properties#

  • autoColumnCategories - Whether column categories are generated automatically

  • autoRowCategories - Whether row categories are generated automatically

  • columnCategories - Column categories for the mapping

  • columnRole - Column role for the mapping

  • columnRolePattern - Whether a search and replace is done on the value mapped by column role before it is used as a column category

  • columnRoleReplace - Replace content to be used in conjunction with columnRolePattern

  • itemModel - Item model

  • multiMatchBehavior - How multiple matches for each row/column combination are handled

  • rotationRole - Rotation role for the mapping

  • rotationRolePattern - Whether a search and replace is done on the value mapped by rotation role before it is used as a bar rotation angle

  • rotationRoleReplace - Replace content to be used in conjunction with rotationRolePattern

  • rowCategories - Row categories for the mapping

  • rowRole - Row role for the mapping

  • rowRolePattern - Whether a search and replace is performed on the value mapped by row role before it is used as a row category

  • rowRoleReplace - Replace content to be used in conjunction with rowRolePattern

  • useModelCategories - Whether row and column roles and categories are used for mapping

  • valueRole - Value role for the mapping

  • valueRolePattern - Whether a search and replace is done on the value mapped by value role before it is used as a bar value

  • valueRoleReplace - Replace content to be used in conjunction with valueRolePattern

Functions#

Signals#

Note

This documentation may contain snippets that were automatically translated from C++ to Python. We always welcome contributions to the snippet translation. If you see an issue with the translation, you can also let us know by creating a ticket on https:/bugreports.qt.io/projects/PYSIDE

Detailed Description#

Warning

This section contains snippets that were automatically translated from C++ to Python and may contain errors.

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 of QAbstractItemModel directly to rows and columns of Q3DBars , and uses the value returned for DisplayRole as bar value by default. The value role to be used can be redefined if DisplayRole 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,()
                                                           "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")

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 Simple Bar Graph example.

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:

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.

Note

Properties can be used directly when from __feature__ import true_property is used or via accessor functions otherwise.

property PᅟySide6.QtDataVisualization.QItemModelBarDataProxy.autoColumnCategories: 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.

Access functions:
property PᅟySide6.QtDataVisualization.QItemModelBarDataProxy.autoRowCategories: 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.

Access functions:
property PᅟySide6.QtDataVisualization.QItemModelBarDataProxy.columnCategories: list of strings#

This property holds The column categories for the mapping..

Access functions:
property PᅟySide6.QtDataVisualization.QItemModelBarDataProxy.columnRole: str#

This property holds The column role for the mapping..

Access functions:
property PᅟySide6.QtDataVisualization.QItemModelBarDataProxy.columnRolePattern: 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.

Access functions:
property PᅟySide6.QtDataVisualization.QItemModelBarDataProxy.columnRoleReplace: 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.

Access functions:
property PᅟySide6.QtDataVisualization.QItemModelBarDataProxy.itemModel: PySide6.QtCore.QAbstractItemModel#

This property holds The item model..

Access functions:
property PᅟySide6.QtDataVisualization.QItemModelBarDataProxy.multiMatchBehavior: 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 multiMatchBehavior to MMBCumulative .

Access functions:
property PᅟySide6.QtDataVisualization.QItemModelBarDataProxy.rotationRole: str#

This property holds The rotation role for the mapping..

Access functions:
property PᅟySide6.QtDataVisualization.QItemModelBarDataProxy.rotationRolePattern: 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.

Access functions:
property PᅟySide6.QtDataVisualization.QItemModelBarDataProxy.rotationRoleReplace: 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.

Access functions:
property PᅟySide6.QtDataVisualization.QItemModelBarDataProxy.rowCategories: list of strings#

This property holds The row categories for the mapping..

Access functions:
property PᅟySide6.QtDataVisualization.QItemModelBarDataProxy.rowRole: str#

This property holds The row role for the mapping..

Access functions:
property PᅟySide6.QtDataVisualization.QItemModelBarDataProxy.rowRolePattern: 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.

Access functions:
property PᅟySide6.QtDataVisualization.QItemModelBarDataProxy.rowRoleReplace: 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.

Access functions:
property PᅟySide6.QtDataVisualization.QItemModelBarDataProxy.useModelCategories: 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.

Access functions:
property PᅟySide6.QtDataVisualization.QItemModelBarDataProxy.valueRole: str#

This property holds The value role for the mapping..

Access functions:
property PᅟySide6.QtDataVisualization.QItemModelBarDataProxy.valueRolePattern: 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.

Access functions:
property PᅟySide6.QtDataVisualization.QItemModelBarDataProxy.valueRoleReplace: 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.

Access functions:
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

Getter of property autoColumnCategories .

PySide6.QtDataVisualization.QItemModelBarDataProxy.autoColumnCategoriesChanged(enable)#
Parameters:

enable – bool

Notification signal of property autoColumnCategories .

PySide6.QtDataVisualization.QItemModelBarDataProxy.autoRowCategories()#
Return type:

bool

Getter of property autoRowCategories .

PySide6.QtDataVisualization.QItemModelBarDataProxy.autoRowCategoriesChanged(enable)#
Parameters:

enable – bool

Notification signal of property autoRowCategories .

PySide6.QtDataVisualization.QItemModelBarDataProxy.columnCategories()#
Return type:

list of strings

Getter of property columnCategories .

PySide6.QtDataVisualization.QItemModelBarDataProxy.columnCategoriesChanged()#

Notification signal of property columnCategories .

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

See also

setColumnRole()

Getter of property columnRole .

PySide6.QtDataVisualization.QItemModelBarDataProxy.columnRoleChanged(role)#
Parameters:

role – str

Notification signal of property columnRole .

PySide6.QtDataVisualization.QItemModelBarDataProxy.columnRolePattern()#
Return type:

PySide6.QtCore.QRegularExpression

Getter of property columnRolePattern .

PySide6.QtDataVisualization.QItemModelBarDataProxy.columnRolePatternChanged(pattern)#
Parameters:

patternPySide6.QtCore.QRegularExpression

Notification signal of property columnRolePattern .

PySide6.QtDataVisualization.QItemModelBarDataProxy.columnRoleReplace()#
Return type:

str

Getter of property columnRoleReplace .

PySide6.QtDataVisualization.QItemModelBarDataProxy.columnRoleReplaceChanged(replace)#
Parameters:

replace – str

Notification signal of property columnRoleReplace .

PySide6.QtDataVisualization.QItemModelBarDataProxy.itemModel()#
Return type:

PySide6.QtCore.QAbstractItemModel

See also

setItemModel()

Getter of property itemModel .

PySide6.QtDataVisualization.QItemModelBarDataProxy.itemModelChanged(itemModel)#
Parameters:

itemModelPySide6.QtCore.QAbstractItemModel

Notification signal of property itemModel .

PySide6.QtDataVisualization.QItemModelBarDataProxy.multiMatchBehavior()#
Return type:

MultiMatchBehavior

Getter of property multiMatchBehavior .

PySide6.QtDataVisualization.QItemModelBarDataProxy.multiMatchBehaviorChanged(behavior)#
Parameters:

behaviorMultiMatchBehavior

Notification signal of property 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

Getter of property rotationRole .

PySide6.QtDataVisualization.QItemModelBarDataProxy.rotationRoleChanged(role)#
Parameters:

role – str

Notification signal of property rotationRole .

PySide6.QtDataVisualization.QItemModelBarDataProxy.rotationRolePattern()#
Return type:

PySide6.QtCore.QRegularExpression

Getter of property rotationRolePattern .

PySide6.QtDataVisualization.QItemModelBarDataProxy.rotationRolePatternChanged(pattern)#
Parameters:

patternPySide6.QtCore.QRegularExpression

Notification signal of property rotationRolePattern .

PySide6.QtDataVisualization.QItemModelBarDataProxy.rotationRoleReplace()#
Return type:

str

Getter of property rotationRoleReplace .

PySide6.QtDataVisualization.QItemModelBarDataProxy.rotationRoleReplaceChanged(replace)#
Parameters:

replace – str

Notification signal of property rotationRoleReplace .

PySide6.QtDataVisualization.QItemModelBarDataProxy.rowCategories()#
Return type:

list of strings

Getter of property rowCategories .

PySide6.QtDataVisualization.QItemModelBarDataProxy.rowCategoriesChanged()#

Notification signal of property rowCategories .

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

See also

setRowRole()

Getter of property rowRole .

PySide6.QtDataVisualization.QItemModelBarDataProxy.rowRoleChanged(role)#
Parameters:

role – str

Notification signal of property rowRole .

PySide6.QtDataVisualization.QItemModelBarDataProxy.rowRolePattern()#
Return type:

PySide6.QtCore.QRegularExpression

Getter of property rowRolePattern .

PySide6.QtDataVisualization.QItemModelBarDataProxy.rowRolePatternChanged(pattern)#
Parameters:

patternPySide6.QtCore.QRegularExpression

Notification signal of property rowRolePattern .

PySide6.QtDataVisualization.QItemModelBarDataProxy.rowRoleReplace()#
Return type:

str

Getter of property rowRoleReplace .

PySide6.QtDataVisualization.QItemModelBarDataProxy.rowRoleReplaceChanged(replace)#
Parameters:

replace – str

Notification signal of property rowRoleReplace .

PySide6.QtDataVisualization.QItemModelBarDataProxy.setAutoColumnCategories(enable)#
Parameters:

enable – bool

Setter of property autoColumnCategories .

PySide6.QtDataVisualization.QItemModelBarDataProxy.setAutoRowCategories(enable)#
Parameters:

enable – bool

Setter of property autoRowCategories .

PySide6.QtDataVisualization.QItemModelBarDataProxy.setColumnCategories(categories)#
Parameters:

categories – list of strings

Setter of property columnCategories .

PySide6.QtDataVisualization.QItemModelBarDataProxy.setColumnRole(role)#
Parameters:

role – str

See also

columnRole()

Setter of property columnRole .

PySide6.QtDataVisualization.QItemModelBarDataProxy.setColumnRolePattern(pattern)#
Parameters:

patternPySide6.QtCore.QRegularExpression

Setter of property columnRolePattern .

PySide6.QtDataVisualization.QItemModelBarDataProxy.setColumnRoleReplace(replace)#
Parameters:

replace – str

Setter of property columnRoleReplace .

PySide6.QtDataVisualization.QItemModelBarDataProxy.setItemModel(itemModel)#
Parameters:

itemModelPySide6.QtCore.QAbstractItemModel

Sets the item model to itemModel. Does not take ownership of the model, but does connect to it to listen for changes.

See also

itemModel()

Setter of property itemModel .

PySide6.QtDataVisualization.QItemModelBarDataProxy.setMultiMatchBehavior(behavior)#
Parameters:

behaviorMultiMatchBehavior

Setter of property multiMatchBehavior .

PySide6.QtDataVisualization.QItemModelBarDataProxy.setRotationRole(role)#
Parameters:

role – str

See also

rotationRole()

Setter of property rotationRole .

PySide6.QtDataVisualization.QItemModelBarDataProxy.setRotationRolePattern(pattern)#
Parameters:

patternPySide6.QtCore.QRegularExpression

Setter of property rotationRolePattern .

PySide6.QtDataVisualization.QItemModelBarDataProxy.setRotationRoleReplace(replace)#
Parameters:

replace – str

Setter of property rotationRoleReplace .

PySide6.QtDataVisualization.QItemModelBarDataProxy.setRowCategories(categories)#
Parameters:

categories – list of strings

See also

rowCategories()

Setter of property rowCategories .

PySide6.QtDataVisualization.QItemModelBarDataProxy.setRowRole(role)#
Parameters:

role – str

See also

rowRole()

Setter of property rowRole .

PySide6.QtDataVisualization.QItemModelBarDataProxy.setRowRolePattern(pattern)#
Parameters:

patternPySide6.QtCore.QRegularExpression

See also

rowRolePattern()

Setter of property rowRolePattern .

PySide6.QtDataVisualization.QItemModelBarDataProxy.setRowRoleReplace(replace)#
Parameters:

replace – str

See also

rowRoleReplace()

Setter of property rowRoleReplace .

PySide6.QtDataVisualization.QItemModelBarDataProxy.setUseModelCategories(enable)#
Parameters:

enable – bool

Setter of property useModelCategories .

PySide6.QtDataVisualization.QItemModelBarDataProxy.setValueRole(role)#
Parameters:

role – str

See also

valueRole()

Setter of property valueRole .

PySide6.QtDataVisualization.QItemModelBarDataProxy.setValueRolePattern(pattern)#
Parameters:

patternPySide6.QtCore.QRegularExpression

Setter of property valueRolePattern .

PySide6.QtDataVisualization.QItemModelBarDataProxy.setValueRoleReplace(replace)#
Parameters:

replace – str

Setter of property valueRoleReplace .

PySide6.QtDataVisualization.QItemModelBarDataProxy.useModelCategories()#
Return type:

bool

Getter of property useModelCategories .

PySide6.QtDataVisualization.QItemModelBarDataProxy.useModelCategoriesChanged(enable)#
Parameters:

enable – bool

Notification signal of property useModelCategories .

PySide6.QtDataVisualization.QItemModelBarDataProxy.valueRole()#
Return type:

str

See also

setValueRole()

Getter of property valueRole .

PySide6.QtDataVisualization.QItemModelBarDataProxy.valueRoleChanged(role)#
Parameters:

role – str

Notification signal of property valueRole .

PySide6.QtDataVisualization.QItemModelBarDataProxy.valueRolePattern()#
Return type:

PySide6.QtCore.QRegularExpression

Getter of property valueRolePattern .

PySide6.QtDataVisualization.QItemModelBarDataProxy.valueRolePatternChanged(pattern)#
Parameters:

patternPySide6.QtCore.QRegularExpression

Notification signal of property valueRolePattern .

PySide6.QtDataVisualization.QItemModelBarDataProxy.valueRoleReplace()#
Return type:

str

Getter of property valueRoleReplace .

PySide6.QtDataVisualization.QItemModelBarDataProxy.valueRoleReplaceChanged(replace)#
Parameters:

replace – str

Notification signal of property valueRoleReplace .