Sur cette page

QAbstractProxyModel Class

La classe QAbstractProxyModel fournit une classe de base pour les modèles d'éléments proxy qui peuvent effectuer des opérations de tri, de filtrage ou d'autres tâches de traitement des données. Plus d'informations...

En-tête : #include <QAbstractProxyModel>
CMake : find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake : QT += core
Hérite : QAbstractItemModel
Hérités par :

QIdentityProxyModel, QSortFilterProxyModel, et QTransposeProxyModel

Propriétés

Fonctions publiques

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

Fonctions publiques réimplémentées

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

Signaux

Fonctions protégées

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

Description détaillée

Cette classe définit l'interface standard que les modèles proxy doivent utiliser pour pouvoir interopérer correctement avec d'autres composants de modèle/vue. Elle n'est pas censée être instanciée directement.

Tous les modèles proxy standard sont dérivés de la classe QAbstractProxyModel. Si vous devez créer une nouvelle classe de modèle proxy, il est généralement préférable de sous-classer une classe existante qui fournit le comportement le plus proche de celui que vous souhaitez fournir.

Les modèles mandataires qui filtrent ou trient les éléments de données d'un modèle source doivent être créés en utilisant ou en sous-classant QSortFilterProxyModel.

Pour sous-classer QAbstractProxyModel, vous devez implémenter mapFromSource() et mapToSource(). Les fonctions mapSelectionFromSource() et mapSelectionToSource() ne doivent être réimplémentées que si vous avez besoin d'un comportement différent du comportement par défaut.

Remarque : si le modèle source est supprimé ou si aucun modèle source n'est spécifié, le modèle mandataire fonctionne sur un modèle de remplacement vide.

Voir également QSortFilterProxyModel, QAbstractItemModel, et Programmation Modèle/Vue.

Documentation sur les propriétés

[bindable] sourceModel : QAbstractItemModel*

Note : Cette propriété prend en charge les liens QProperty.

Cette propriété contient le modèle source de ce modèle proxy.

Fonctions d'accès :

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

Signal Notificateur :

void sourceModelChanged()[see note below]

Remarque : Il s'agit d'un signal privé. Il peut être utilisé dans les connexions de signaux mais ne peut pas être émis par l'utilisateur.

Documentation des fonctions membres

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

Construit un modèle proxy avec l'adresse parent.

[virtual noexcept] QAbstractProxyModel::~QAbstractProxyModel()

Détruit le modèle de procuration.

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

Réimplémente : 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

Réimplémente : 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

Réimplémente : QAbstractItemModel::canFetchMore(const QModelIndex &parent) const.

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

Réimplémente : QAbstractItemModel::clearItemData(const QModelIndex &index).

Cette fonction a été introduite dans Qt 6.0.

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

Equivaut à appeler createIndex sur le modèle source.

Cette méthode est utile si votre modèle proxy veut maintenir la relation parent-enfant des éléments du modèle source. Lorsque vous réimplémentez mapToSource(), vous pouvez appeler cette méthode pour créer un index pour la ligne row et la colonne col du modèle source.

Une utilisation typique serait d'enregistrer le pointeur interne provenant du modèle source dans l'index proxy lors de la réimplémentation de mapFromSource() et d'utiliser le même pointeur interne que internalPtr pour récupérer l'index source original lors de la réimplémentation de mapToSource().

Cette fonction a été introduite dans Qt 6.2.

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

Réimplémente : QAbstractItemModel::data(const QModelIndex &index, int role) const.

Voir également setData().

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

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

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

Réimplémente : QAbstractItemModel::fetchMore(const QModelIndex &parent).

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

Réimplémente : QAbstractItemModel::flags(const QModelIndex &index) const.

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

Réimplémente : QAbstractItemModel::hasChildren(const QModelIndex &parent) const.

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

Réimplémente : QAbstractItemModel::headerData(int section, Qt::Orientation orientation, int role) const.

Voir également setHeaderData().

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

Réimplémente : QAbstractItemModel::itemData(const QModelIndex &index) const.

Voir également setItemData().

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

Réimplémenter cette fonction pour renvoyer l'index du modèle dans le modèle mandataire qui correspond à l'adresse sourceIndex du modèle source.

Remarque : cette fonction peut être invoquée via le système de méta-objets et à partir de QML. Voir Q_INVOKABLE.

Voir également mapToSource().

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

Renvoie une sélection proxy mappée à partir de l'adresse sourceSelection spécifiée.

Réimplémentez cette méthode pour mapper les sélections source en sélections proxy.

Remarque : cette fonction peut être invoquée via le système de méta-objets et à partir de QML. Voir Q_INVOKABLE.

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

Renvoie une sélection source mappée à partir de l'adresse proxySelection spécifiée.

Réimplémentez cette méthode pour mettre en correspondance les sélections proxy avec les sélections source.

Remarque : cette fonction peut être invoquée via le système de méta-objets et à partir de QML. Voir Q_INVOKABLE.

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

Réimplémenter cette fonction pour renvoyer l'index du modèle dans le modèle source qui correspond à proxyIndex dans le modèle proxy.

Remarque : cette fonction peut être invoquée via le système de méta-objets et à partir de QML. Voir Q_INVOKABLE.

Voir aussi mapFromSource().

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

Réimplémente : QAbstractItemModel::mimeData(const QModelIndexList &indexes) const.

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

Réimplémente : QAbstractItemModel::mimeTypes() const.

[override virtual] void QAbstractProxyModel::revert()

Réimplémente : QAbstractItemModel::revert().

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

Réimplémente : QAbstractItemModel::roleNames() const.

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

Réimplémente : QAbstractItemModel::setData(const QModelIndex &index, const QVariant &value, int role).

Voir également data().

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

Réimplémente : QAbstractItemModel::setHeaderData(int section, Qt::Orientation orientation, const QVariant &value, int role).

Voir également headerData().

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

Réimplémente : QAbstractItemModel::setItemData(const QModelIndex &index, const QMap<int, QVariant> &roles).

Voir également itemData().

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

Définit l'adresse sourceModel donnée pour qu'elle soit traitée par le modèle mandataire.

Les sous-classes doivent appeler beginResetModel() au début de la méthode, se déconnecter de l'ancien modèle, appeler cette méthode, se connecter au nouveau modèle et appeler endResetModel().

Remarque : fonction de définition de la propriété sourceModel.

Voir également sourceModel().

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

Réimplémente : QAbstractItemModel::sibling(int row, int column, const QModelIndex &index) const.

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

Réimplémente : QAbstractItemModel::sort(int column, Qt::SortOrder order).

QAbstractItemModel *QAbstractProxyModel::sourceModel() const

Renvoie le modèle qui contient les données disponibles via le modèle proxy.

Note : Fonction Getter pour la propriété sourceModel.

Voir aussi setSourceModel().

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

Réimplémente : QAbstractItemModel::span(const QModelIndex &index) const.

[override virtual] bool QAbstractProxyModel::submit()

Réimplémente : QAbstractItemModel::submit().

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

Réimplémente : QAbstractItemModel::supportedDragActions() const.

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

Réimplémente : 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.