|  | Home · All Namespaces · All Classes · Main Classes · Grouped Classes · Modules · Functions |

# QAbstractProxyModel Class Reference
[QtGui module]

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

     #include <QAbstractProxyModel>

Inherits QAbstractItemModel.

Inherited by QSortFilterProxyModel.

This class was introduced in Qt 4.1.

- List of all members, including inherited members

### Public Functions

- QAbstractProxyModel ( QObject * parent = 0 )
- ~QAbstractProxyModel ()
- virtual QModelIndex mapFromSource ( const QModelIndex & sourceIndex ) const = 0
- virtual QItemSelection mapSelectionFromSource ( const QItemSelection & sourceSelection ) const
- virtual QItemSelection mapSelectionToSource ( const QItemSelection & proxySelection ) const
- virtual QModelIndex mapToSource ( const QModelIndex & proxyIndex ) const = 0
- virtual void setSourceModel ( QAbstractItemModel * sourceModel )
- QAbstractItemModel * sourceModel () const

- 34 public functions inherited from QAbstractItemModel
- 29 public functions inherited from QObject

### Additional Inherited Members

- 1 property inherited from QObject
- 2 public slots inherited from QAbstractItemModel
- 1 public slot inherited from QObject
- 14 signals inherited from QAbstractItemModel
- 1 signal inherited from QObject
- 5 static public members inherited from QObject
- 14 protected functions inherited from QAbstractItemModel
- 7 protected functions inherited from QObject

## Detailed Description

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

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, and Model/View Programming.

## Member Function Documentation

### QAbstractProxyModel::QAbstractProxyModel ( QObject * parent = 0 )

Constructs a proxy model with the given parent.

### QAbstractProxyModel::~QAbstractProxyModel ()

Destroys the proxy model.

### QModelIndex QAbstractProxyModel::mapFromSource ( const QModelIndex & sourceIndex ) const `[pure virtual]`

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

See also mapToSource().

### QItemSelection QAbstractProxyModel::mapSelectionFromSource ( const QItemSelection & sourceSelection ) const `[virtual]`

Returns a proxy selection mapped from the specified sourceSelection.

Reimplement this method to map source selections to proxy selections.

### QItemSelection QAbstractProxyModel::mapSelectionToSource ( const QItemSelection & proxySelection ) const `[virtual]`

Returns a source selection mapped from the specified proxySelection.

Reimplement this method to map proxy selections to source selections.

### QModelIndex QAbstractProxyModel::mapToSource ( const QModelIndex & proxyIndex ) const `[pure virtual]`

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

See also mapFromSource().

### void QAbstractProxyModel::setSourceModel ( QAbstractItemModel * sourceModel ) `[virtual]`

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

See also sourceModel().

### QAbstractItemModel * QAbstractProxyModel::sourceModel () const

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

See also setSourceModel().