Sur cette page

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.