class QAbstractProxyModel

The QAbstractProxyModel class provides a base class for proxy item models that can do sorting, filtering or other data processing tasks. More

Inheritance diagram of PySide6.QtCore.QAbstractProxyModel

Inherited by: QTransposeProxyModel, QSortFilterProxyModel, QIdentityProxyModel

Synopsis

Properties

Methods

Virtual methods

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

This class defines the standard interface that proxy models must use to be able to interoperate correctly with other model/view components. It is not supposed to be instantiated directly.

All standard proxy models are derived from the QAbstractProxyModel class. If you need to create a new proxy model class, it is usually better to subclass an existing class that provides the closest behavior to the one you want to provide.

Proxy models that filter or sort items of data from a source model should be created by using or subclassing QSortFilterProxyModel .

To subclass QAbstractProxyModel , you need to implement mapFromSource() and mapToSource() . The mapSelectionFromSource() and mapSelectionToSource() functions only need to be reimplemented if you need a behavior different from the default behavior.

Note

If the source model is deleted or no source model is specified, the proxy model operates on a empty placeholder model.

See also

QSortFilterProxyModel QAbstractItemModel Model/View Programming

Note

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

property sourceModelᅟ: QAbstractItemModel

This property holds the source model of this proxy model..

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

parentQObject

Constructs a proxy model with the given parent.

createSourceIndex(row, col, internalPtr)
Parameters:
  • row – int

  • col – int

  • internalPtrvoid

Return type:

QModelIndex

Equivalent to calling createIndex on the source model.

This method is useful if your proxy model wants to maintain the parent-child relationship of items in the source model. When reimplementing mapToSource() , you can call this method to create an index for row row and column col of the source model.

A typical use would be to save the internal pointer coming from the source model in the proxy index when reimplementing mapFromSource() and use the same internal pointer as internalPtr to recover the original source index when reimplementing mapToSource() .

abstract mapFromSource(sourceIndex)
Parameters:

sourceIndexQModelIndex

Return type:

QModelIndex

Reimplement this function to return the model index in the proxy model that corresponds to the sourceIndex from the source model.

See also

mapToSource()

mapSelectionFromSource(selection)
Parameters:

selectionQItemSelection

Return type:

QItemSelection

Returns a proxy selection mapped from the specified sourceSelection.

Reimplement this method to map source selections to proxy selections.

mapSelectionToSource(selection)
Parameters:

selectionQItemSelection

Return type:

QItemSelection

Returns a source selection mapped from the specified proxySelection.

Reimplement this method to map proxy selections to source selections.

abstract mapToSource(proxyIndex)
Parameters:

proxyIndexQModelIndex

Return type:

QModelIndex

Reimplement this function to return the model index in the source model that corresponds to the proxyIndex in the proxy model.

See also

mapFromSource()

setSourceModel(sourceModel)
Parameters:

sourceModelQAbstractItemModel

Sets the given sourceModel to be processed by the proxy model.

Subclasses should call beginResetModel() at the beginning of the method, disconnect from the old model, call this method, connect to the new model, and call endResetModel() .

See also

sourceModel()

Setter of property sourceModelᅟ .

sourceModel()
Return type:

QAbstractItemModel

Returns the model that contains the data that is available through the proxy model.

See also

setSourceModel()

Getter of property sourceModelᅟ .

sourceModelChanged()

Notification signal of property sourceModelᅟ .