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