Sur cette page

QAbstractProxyModel Class

La classe `QAbstractProxyModel` sert de classe de base aux modèles d'éléments proxy capables d'effectuer des opérations de tri, de filtrage ou d'autres tâches de traitement des données. En savoir plus...

En-tête : #include <QAbstractProxyModel>
CMake : find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake : QT += core
Hérite de : QAbstractItemModel
Hérité 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 de proxy doivent utiliser pour pouvoir interagir correctement avec d'autres composants de type modèle/vue. Elle n'est pas destiné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 créer une sous-classe d’une classe existante dont le comportement se rapproche le plus de celui que vous souhaitez obtenir.

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

Pour créer une sous-classe de `QAbstractProxyModel`, vous devez implémenter les méthodes ` 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 de celui par défaut.

Remarque : si le modèle source est supprimé ou si aucun modèle source n’est spécifié, le modèle proxy 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*

Remarque : cette propriété prend en charge les liaisons de type « 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 de notification :

void sourceModelChanged()[see note below]

Remarque : il s'agit d'un signal privé. Il peut être utilisé dans des 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 de substitution à partir de l'parent ion fournie.

[virtual noexcept] QAbstractProxyModel::~QAbstractProxyModel()

Supprime le modèle proxy.

[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

Cela revient à appeler la méthode `createIndex` sur le modèle source.

Cette méthode est utile si votre modèle proxy souhaite conserver la relation parent-enfant entre les éléments du modèle source. Lorsque vous réimplémentez la méthode ` mapToSource()`, vous pouvez appeler cette méthode pour créer un index pour les lignes row et les colonnes col du modèle source.

Une utilisation typique consisterait à enregistrer le pointeur interne provenant du modèle source dans l’index du proxy lors de la réimplémentation de ` mapFromSource()` et à utiliser ce même pointeur interne comme ` internalPtr ` pour récupérer l’index source d’origine 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 aussi setHeaderData().

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

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

Voir aussi setItemData().

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

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

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

Voir également mapToSource().

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

Renvoie une sélection proxy correspondant à celle spécifiée dans ` sourceSelection`.

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

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

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

Renvoie une sélection source mise en correspondance à partir de l'proxySelection spécifiée.

Réimplémentez cette méthode pour associer des sélections de proxy à des sélections source.

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

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

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

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

Voir également 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 aussi 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 aussi itemData().

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

Définit l'sourceModel on fournie comme devant être traitée par le modèle proxy.

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, puis appeler ` endResetModel()`.

Remarque : fonctionde définition pour 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 contenant les données accessibles via le modèle proxy.

Remarque : fonctiongetter 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.