QConcatenateTablesProxyModel Class
La classe `QConcatenateTablesProxyModel` sert de proxy à plusieurs modèles sources, en concaténant leurs lignes. En savoir plus...
| En-tête : | #include <QConcatenateTablesProxyModel> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake : | QT += core |
| Hérite de : | QAbstractItemModel |
Fonctions publiques
| QConcatenateTablesProxyModel(QObject *parent = nullptr) | |
| virtual | ~QConcatenateTablesProxyModel() |
| void | addSourceModel(QAbstractItemModel *sourceModel) |
| QModelIndex | mapFromSource(const QModelIndex &sourceIndex) const |
| QModelIndex | mapToSource(const QModelIndex &proxyIndex) const |
| void | removeSourceModel(QAbstractItemModel *sourceModel) |
| QList<QAbstractItemModel *> | sourceModels() const |
Fonctions publiques réimplémentées
| virtual bool | canDropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) const override |
| virtual int | columnCount(const QModelIndex &parent = QModelIndex()) const override |
| virtual QVariant | data(const QModelIndex &index, int role = Qt::DisplayRole) const override |
| virtual bool | dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) override |
| virtual Qt::ItemFlags | flags(const QModelIndex &index) const override |
| virtual QVariant | headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override |
| virtual QModelIndex | index(int row, int column, const QModelIndex &parent = QModelIndex()) 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 QModelIndex | parent(const QModelIndex &index) const override |
(since 6.9.0) virtual QHash<int, QByteArray> | roleNames() const override |
| virtual int | rowCount(const QModelIndex &parent = QModelIndex()) const override |
| virtual bool | setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole) override |
| virtual bool | setItemData(const QModelIndex &proxyIndex, const QMap<int, QVariant> &roles) override |
| virtual QSize | span(const QModelIndex &index) const override |
Description détaillée
QConcatenateTablesProxyModel prend plusieurs modèles sources et concatène leurs lignes.
En d’autres termes, le proxy contiendra toutes les lignes du premier modèle source, suivies de toutes les lignes du deuxième modèle source, et ainsi de suite.
Si les modèles sources ne comportent pas le même nombre de colonnes, le proxy ne comportera que le nombre de colonnes du modèle source ayant le plus petit nombre de colonnes. Les colonnes supplémentaires présentes dans les autres modèles sources seront simplement ignorées.
Les modèles sources peuvent être ajoutés ou supprimés lors de l’exécution, et le nombre de colonnes est ajusté en conséquence.
Ce proxy n’hérite pas de « QAbstractProxyModel » car il utilise plusieurs modèles sources, plutôt qu’un seul.
Seuls les modèles plats (listes et tableaux) sont pris en charge ; les modèles arborescents ne le sont pas.
Voir également QAbstractProxyModel, Programmation modèle/vue, QIdentityProxyModel et QAbstractItemModel.
Documentation sur les fonctions membres
[explicit] QConcatenateTablesProxyModel::QConcatenateTablesProxyModel(QObject *parent = nullptr)
Construit un modèle proxy de concaténation de lignes à partir de l'parent on fournie.
[virtual noexcept] QConcatenateTablesProxyModel::~QConcatenateTablesProxyModel()
Supprime ce modèle proxy.
void QConcatenateTablesProxyModel::addSourceModel(QAbstractItemModel *sourceModel)
Ajoute un modèle source sourceModel, sous tous les modèles source ajoutés précédemment.
La propriété de sourceModel n’est pas affectée par cette opération.
Un même modèle source ne peut pas être ajouté plus d'une fois.
[override virtual] bool QConcatenateTablesProxyModel::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] int QConcatenateTablesProxyModel::columnCount(const QModelIndex &parent = QModelIndex()) const
Réimplémente : QAbstractItemModel::columnCount(const QModelIndex &parent) const.
Cette méthode renvoie le nombre de colonnes du modèle source comportant le moins de colonnes.
[override virtual] QVariant QConcatenateTablesProxyModel::data(const QModelIndex &index, int role = Qt::DisplayRole) const
Réimplémente : QAbstractItemModel::data(const QModelIndex &index, int role) const.
Voir aussi setData().
[override virtual] bool QConcatenateTablesProxyModel::dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent)
Réimplémentation de : QAbstractItemModel::dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent).
QConcatenateTablesProxyModel Gère le dépôt sur un élément, entre deux éléments et après le dernier élément. Dans tous les cas, l'appel est transmis au modèle source sous-jacent. Lors d'un dépôt sur un élément, le modèle source de cet élément est appelé. Lors d'un dépôt entre deux éléments, le modèle source situé immédiatement en dessous de la position de dépôt est appelé. Lors d'un dépôt après le dernier élément, le dernier modèle source est appelé.
[override virtual] Qt::ItemFlags QConcatenateTablesProxyModel::flags(const QModelIndex &index) const
Réimplémentation de : ` QAbstractItemModel::flags(const QModelIndex &index) const`.
Renvoie les indicateurs correspondant à l’index donné. Si l’ index est valide, les indicateurs proviennent du modèle source de cet index. Si l’ index n’est pas valide (comme c’est le cas, par exemple, pour déterminer si le dépôt sur une zone vide de la vue est autorisé), ce sont les indicateurs du premier modèle qui sont renvoyés.
[override virtual] QVariant QConcatenateTablesProxyModel::headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const
Réimplémente : QAbstractItemModel::headerData(int section, Qt::Orientation orientation, int role) const.
Cette méthode renvoie les données d’en-tête horizontales pour le premier modèle source, ainsi que les données d’en-tête verticales pour le modèle source correspondant à chaque ligne.
[override virtual] QModelIndex QConcatenateTablesProxyModel::index(int row, int column, const QModelIndex &parent = QModelIndex()) const
Réimplémente : QAbstractItemModel::index(int row, int column, const QModelIndex &parent) const.
[override virtual] QMap<int, QVariant> QConcatenateTablesProxyModel::itemData(const QModelIndex &proxyIndex) const
Réimplémente : QAbstractItemModel::itemData(const QModelIndex &index) const.
Voir aussi setItemData().
[invokable] QModelIndex QConcatenateTablesProxyModel::mapFromSource(const QModelIndex &sourceIndex) const
Renvoie l'index de proxy d'un modèle d'sourceIndex donné, qui peut provenir de n'importe lequel des modèles sources.
Remarque : cette fonction peut être appelée via le système de méta-objets et depuis QML. Voir Q_INVOKABLE.
[invokable] QModelIndex QConcatenateTablesProxyModel::mapToSource(const QModelIndex &proxyIndex) const
Renvoie l'index source d'un ` proxyIndex` donné.
Remarque : cette fonction peut être appelée via le système de méta-objets et depuis QML. Voir Q_INVOKABLE.
[override virtual] QMimeData *QConcatenateTablesProxyModel::mimeData(const QModelIndexList &indexes) const
Réimplémente : QAbstractItemModel::mimeData(const QModelIndexList &indexes) const.
L'appel est transmis au modèle source du premier index de la liste de indexes.
Important : veuillez noter que ce proxy ne prend en charge que le glissement d’une seule ligne. Il déclenchera une exception s’il est appelé avec des index provenant de plusieurs lignes, car le glissement de lignes pouvant provenir de différents modèles sources ne peut pas être implémenté de manière générique par ce modèle proxy. Chaque élément de données de la liste QMimeData doit être fusionné, ce qui dépend du type de données. Réimplémentez cette méthode dans une sous-classe si vous souhaitez prendre en charge le glissement de plusieurs lignes.
[override virtual] QStringList QConcatenateTablesProxyModel::mimeTypes() const
Réimplémente : QAbstractItemModel::mimeTypes() const.
Cette méthode renvoie les types MIME du premier modèle source.
[override virtual] QModelIndex QConcatenateTablesProxyModel::parent(const QModelIndex &index) const
Réimplémente : QAbstractItemModel::parent(const QModelIndex &index) const.
void QConcatenateTablesProxyModel::removeSourceModel(QAbstractItemModel *sourceModel)
Supprime le modèle source sourceModel, qui avait été précédemment ajouté à ce proxy.
La propriété de sourceModel n'est pas affectée par cette opération.
[override virtual, since 6.9.0] QHash<int, QByteArray> QConcatenateTablesProxyModel::roleNames() const
Réimplémente : ` QAbstractItemModel::roleNames()` const.
Renvoie l'union des `roleNames()` des modèles sous-jacents.
Si les modèles sources associent des noms différents à un même rôle, le nom utilisé dans le dernier modèle source remplace celui utilisé dans les modèles précédents.
Cette fonction a été introduite dans Qt 6.9.0.
[override virtual] int QConcatenateTablesProxyModel::rowCount(const QModelIndex &parent = QModelIndex()) const
Réimplémente : QAbstractItemModel::rowCount(const QModelIndex &parent) const.
[override virtual] bool QConcatenateTablesProxyModel::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 QConcatenateTablesProxyModel::setItemData(const QModelIndex &proxyIndex, const QMap<int, QVariant> &roles)
Réimplémente : QAbstractItemModel::setItemData(const QModelIndex &index, const QMap<int, QVariant> &roles).
Voir aussi itemData().
QList<QAbstractItemModel *> QConcatenateTablesProxyModel::sourceModels() const
Renvoie une liste des modèles qui ont été ajoutés en tant que modèles sources pour ce modèle proxy.
[override virtual] QSize QConcatenateTablesProxyModel::span(const QModelIndex &index) const
Réimplémente : QAbstractItemModel::span(const QModelIndex &index) 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.