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
- sourceModel : QAbstractItemModel*
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
| void | sourceModelChanged() |
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.