En esta página

QAbstractProxyModel Class

La clase QAbstractProxyModel proporciona una clase base para modelos de elementos proxy que pueden realizar tareas de ordenación, filtrado u otras tareas de procesamiento de datos. Más...

Cabecera: #include <QAbstractProxyModel>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core
Hereda: QAbstractItemModel
Heredado por:

QIdentityProxyModel, QSortFilterProxyModel, y QTransposeProxyModel

Propiedades

Funciones públicas

QAbstractProxyModel(QObject *parent = nullptr)
virtual ~QAbstractProxyModel()
QBindable<QAbstractItemModel *> bindableSourceModel()
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

Funciones públicas reimplementadas

virtual QModelIndex buddy(const QModelIndex &index) const override
virtual bool canDropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) const override
virtual bool canFetchMore(const QModelIndex &parent) const override
(since 6.0) virtual bool clearItemData(const QModelIndex &index) override
virtual QVariant data(const QModelIndex &proxyIndex, int role = Qt::DisplayRole) const override
virtual bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) override
virtual void fetchMore(const QModelIndex &parent) override
virtual Qt::ItemFlags flags(const QModelIndex &index) const override
virtual bool hasChildren(const QModelIndex &parent = QModelIndex()) const override
virtual QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override
virtual QMap<int, QVariant> itemData(const QModelIndex &proxyIndex) const override
virtual QMimeData *mimeData(const QModelIndexList &indexes) const override
virtual QStringList mimeTypes() const override
virtual void revert() override
virtual QHash<int, QByteArray> roleNames() const override
virtual bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole) override
virtual bool setHeaderData(int section, Qt::Orientation orientation, const QVariant &value, int role = Qt::EditRole) override
virtual bool setItemData(const QModelIndex &index, const QMap<int, QVariant> &roles) override
virtual QModelIndex sibling(int row, int column, const QModelIndex &idx) const override
virtual void sort(int column, Qt::SortOrder order = Qt::AscendingOrder) override
virtual QSize span(const QModelIndex &index) const override
virtual bool submit() override
virtual Qt::DropActions supportedDragActions() const override
virtual Qt::DropActions supportedDropActions() const override

Señales

Funciones protegidas

(since 6.2) QModelIndex createSourceIndex(int row, int col, void *internalPtr) const

Descripción detallada

Esta clase define la interfaz estándar que los modelos proxy deben utilizar para poder interoperar correctamente con otros componentes modelo/vista. No debe instanciarse directamente.

Todos los modelos proxy estándar derivan de la clase QAbstractProxyModel. Si necesitas crear una nueva clase de modelo proxy, normalmente es mejor subclasificar una clase existente que proporcione el comportamiento más cercano al que quieres proporcionar.

Los modelos proxy que filtran u ordenan elementos de datos de un modelo fuente deben crearse utilizando o subclasificando QSortFilterProxyModel.

Para subclasificar QAbstractProxyModel, es necesario implementar mapFromSource() y mapToSource(). Las funciones mapSelectionFromSource() y mapSelectionToSource() sólo deben reimplementarse si se necesita un comportamiento diferente al predeterminado.

Nota: Si se elimina el modelo fuente o no se especifica ningún modelo fuente, el modelo proxy opera sobre un modelo marcador de posición vacío.

Véase también QSortFilterProxyModel, QAbstractItemModel, y Programación Modelo/Vista.

Documentación de propiedades

[bindable] sourceModel : QAbstractItemModel*

Nota: Esta propiedad admite enlaces QProperty.

Esta propiedad contiene el modelo fuente de este modelo proxy.

Funciones de acceso:

QAbstractItemModel *sourceModel() const
virtual void setSourceModel(QAbstractItemModel *sourceModel)

Señal de notificador:

void sourceModelChanged()[see note below]

Nota : Se trata de una señal privada. Puede utilizarse en conexiones de señal pero no puede ser emitida por el usuario.

Documentación de las funciones miembro

[explicit] QAbstractProxyModel::QAbstractProxyModel(QObject *parent = nullptr)

Construye un modelo proxy con la dirección parent.

[virtual noexcept] QAbstractProxyModel::~QAbstractProxyModel()

Destruye el modelo proxy.

[override virtual] QModelIndex QAbstractProxyModel::buddy(const QModelIndex &index) const

Reimplementa: QAbstractItemModel::buddy(const QModelIndex &index) const.

[override virtual] bool QAbstractProxyModel::canDropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) const

Reimplementa: QAbstractItemModel::canDropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) const.

[override virtual] bool QAbstractProxyModel::canFetchMore(const QModelIndex &parent) const

Reimplementa: QAbstractItemModel::canFetchMore(const QModelIndex &parent) const.

[override virtual, since 6.0] bool QAbstractProxyModel::clearItemData(const QModelIndex &index)

Reimplementa: QAbstractItemModel::clearItemData(const QModelIndex &index).

Esta función se introdujo en Qt 6.0.

[protected, since 6.2] QModelIndex QAbstractProxyModel::createSourceIndex(int row, int col, void *internalPtr) const

Equivale a llamar a createIndex en el modelo fuente.

Este método es útil si tu modelo proxy quiere mantener la relación padre-hijo de los elementos en el modelo fuente. Cuando reimplementes mapToSource(), puedes llamar a este método para crear un índice para la fila row y la columna col del modelo fuente.

Un uso típico sería guardar el puntero interno procedente del modelo fuente en el índice proxy al reimplementar mapFromSource() y utilizar el mismo puntero interno que internalPtr para recuperar el índice fuente original al reimplementar mapToSource().

Esta función se introdujo en Qt 6.2.

[override virtual] QVariant QAbstractProxyModel::data(const QModelIndex &proxyIndex, int role = Qt::DisplayRole) const

Reimplementa: QAbstractItemModel::data(const QModelIndex &index, int rol) const.

Véase también setData().

[override virtual] bool QAbstractProxyModel::dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent)

Reimplementa: QAbstractItemModel::dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent).

[override virtual] void QAbstractProxyModel::fetchMore(const QModelIndex &parent)

Reimplementa: QAbstractItemModel::fetchMore(const QModelIndex &parent).

[override virtual] Qt::ItemFlags QAbstractProxyModel::flags(const QModelIndex &index) const

Reimplementa: QAbstractItemModel::flags(const QModelIndex &index) const.

[override virtual] bool QAbstractProxyModel::hasChildren(const QModelIndex &parent = QModelIndex()) const

Reimplementa: QAbstractItemModel::hasChildren(const QModelIndex &parent) const.

[override virtual] QVariant QAbstractProxyModel::headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const

Reimplementa: QAbstractItemModel::headerData(int section, Qt::Orientation orientation, int role) const.

Véase también setHeaderData().

[override virtual] QMap<int, QVariant> QAbstractProxyModel::itemData(const QModelIndex &proxyIndex) const

Reimplementa: QAbstractItemModel::itemData(const QModelIndex &index) const.

Véase también setItemData().

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

Reimplemente esta función para devolver el índice del modelo en el modelo proxy que corresponde al sourceIndex del modelo fuente.

Nota: Esta función puede invocarse a través del sistema de metaobjetos y desde QML. Véase Q_INVOKABLE.

Véase también mapToSource().

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

Devuelve una selección proxy mapeada desde el sourceSelection especificado .

Reimplemente este método para asignar selecciones de origen a selecciones proxy.

Nota: Esta función puede invocarse a través del sistema de metaobjetos y desde QML. Véase Q_INVOKABLE.

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

Devuelve una selección de origen mapeada desde el proxySelection especificado .

Reimplemente este método para mapear selecciones proxy a selecciones fuente.

Nota: Esta función puede invocarse a través del sistema de metaobjetos y desde QML. Véase Q_INVOKABLE.

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

Reimplemente esta función para devolver el índice del modelo en el modelo fuente que corresponde a proxyIndex en el modelo proxy.

Nota: Esta función puede invocarse a través del sistema de metaobjetos y desde QML. Véase Q_INVOKABLE.

Véase también mapFromSource().

[override virtual] QMimeData *QAbstractProxyModel::mimeData(const QModelIndexList &indexes) const

Reimplementa: QAbstractItemModel::mimeData(const QModelIndexList &indexes) const.

[override virtual] QStringList QAbstractProxyModel::mimeTypes() const

Reimplementa: QAbstractItemModel::mimeTypes() const.

[override virtual] void QAbstractProxyModel::revert()

Reimplementa: QAbstractItemModel::revert().

[override virtual] QHash<int, QByteArray> QAbstractProxyModel::roleNames() const

Reimplementa: QAbstractItemModel::roleNames() const.

[override virtual] bool QAbstractProxyModel::setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole)

Reimplementa: QAbstractItemModel::setData(const QModelIndex &index, const QVariant &value, int role).

Véase también data().

[override virtual] bool QAbstractProxyModel::setHeaderData(int section, Qt::Orientation orientation, const QVariant &value, int role = Qt::EditRole)

Reimplementa: QAbstractItemModel::setHeaderData(int section, Qt::Orientation orientation, const QVariant &value, int role).

Véase también headerData().

[override virtual] bool QAbstractProxyModel::setItemData(const QModelIndex &index, const QMap<int, QVariant> &roles)

Reimplementa: QAbstractItemModel::setItemData(const QModelIndex &index, const QMap<int, QVariant> &roles).

Véase también itemData().

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

Establece el sourceModel dado para ser procesado por el modelo proxy.

Las subclases deben llamar a beginResetModel() al principio del método, desconectarse del modelo antiguo, llamar a este método, conectarse al nuevo modelo y llamar a endResetModel().

Nota: Función Setter para la propiedad sourceModel.

Véase también sourceModel().

[override virtual] QModelIndex QAbstractProxyModel::sibling(int row, int column, const QModelIndex &idx) const

Reimplementa: QAbstractItemModel::sibling(int fila, int columna, const QModelIndex &index) const.

[override virtual] void QAbstractProxyModel::sort(int column, Qt::SortOrder order = Qt::AscendingOrder)

Reimplementa: QAbstractItemModel::sort(int columna, Qt::SortOrder orden).

QAbstractItemModel *QAbstractProxyModel::sourceModel() const

Devuelve el modelo que contiene los datos disponibles a través del modelo proxy.

Nota: Función Getter para la propiedad sourceModel.

Véase también setSourceModel().

[override virtual] QSize QAbstractProxyModel::span(const QModelIndex &index) const

Reimplementa: QAbstractItemModel::span(const QModelIndex &index) const.

[override virtual] bool QAbstractProxyModel::submit()

Reimplementa: QAbstractItemModel::submit().

[override virtual] Qt::DropActions QAbstractProxyModel::supportedDragActions() const

Reimplementa: QAbstractItemModel::supportedDragActions() const.

[override virtual] Qt::DropActions QAbstractProxyModel::supportedDropActions() const

Reimplementa: QAbstractItemModel::supportedDropActions() const.

© 2026 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.