Sur cette page

QConcatenateTablesProxyModel Class

La classe QConcatenateTablesProxyModel permet d'utiliser plusieurs modèles sources, en concaténant leurs lignes. Plus...

En-tête : #include <QConcatenateTablesProxyModel>
CMake : find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake : QT += core
Héritages : 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 aura toutes les lignes du premier modèle source, suivies par toutes les lignes du second modèle source, et ainsi de suite.

Si les modèles sources n'ont pas le même nombre de colonnes, le mandataire n'aura qu'autant de colonnes que le modèle source ayant le plus petit nombre de colonnes. Les colonnes supplémentaires dans les autres modèles sources seront simplement ignorées.

Des modèles sources peuvent être ajoutés et supprimés au moment 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, Model/View Programming, QIdentityProxyModel, et QAbstractItemModel.

Documentation des fonctions membres

[explicit] QConcatenateTablesProxyModel::QConcatenateTablesProxyModel(QObject *parent = nullptr)

Construit un modèle proxy concatenate-rows avec l'adresse parent.

[virtual noexcept] QConcatenateTablesProxyModel::~QConcatenateTablesProxyModel()

Détruit ce modèle de proxy.

void QConcatenateTablesProxyModel::addSourceModel(QAbstractItemModel *sourceModel)

Ajoute un modèle de source sourceModel, en dessous de tous les modèles de source ajoutés précédemment.

La propriété de sourceModel n'est pas affectée par cette opération.

Le 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 ayant le plus petit nombre 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 également setData().

[override virtual] bool QConcatenateTablesProxyModel::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).

QConcatenateTablesProxyModel gère le dépôt sur un élément, entre les é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 du 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émente : QAbstractItemModel::flags(const QModelIndex &index) const.

Renvoie les drapeaux pour l'index donné. Si l'adresse index est valide, les drapeaux proviennent du modèle source de cette adresse index. Si index n'est pas valide (comme utilisé pour déterminer si le dépôt sur une zone vide de la vue est autorisé, par exemple), les drapeaux du premier modèle 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 du premier modèle source et les données d'en-tête verticales du 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 également setItemData().

[invokable] QModelIndex QConcatenateTablesProxyModel::mapFromSource(const QModelIndex &sourceIndex) const

Renvoie l'index du proxy pour un sourceIndex donné, qui peut provenir de n'importe quel modèle source.

Note : Cette fonction peut être invoquée via le système de méta-objets et à partir de QML. Voir Q_INVOKABLE.

[invokable] QModelIndex QConcatenateTablesProxyModel::mapToSource(const QModelIndex &proxyIndex) const

Renvoie l'index de la source pour un proxyIndex donné.

Note : Cette fonction peut être invoquée via le système de méta-objets et à partir de 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 indexes.

Important : veuillez noter que ce proxy ne prend en charge que le glissement d'une seule ligne. Il émettra un avis défavorable s'il est appelé avec des index provenant de plusieurs lignes, car le déplacement de lignes pouvant provenir de différents modèles sources ne peut pas être mis en œuvre de manière générique par ce modèle de proxy. Chaque donnée du site QMimeData doit être fusionnée, ce qui est spécifique au type de données. Réimplémentez cette méthode dans une sous-classe si vous souhaitez prendre en charge le déplacement de plusieurs lignes.

[override virtual] QStringList QConcatenateTablesProxyModel::mimeTypes() const

Réimplémente : QAbstractItemModel::mimeTypes() const.

Cette méthode renvoie les types de mime pour le 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 a é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.

Dans le cas où les modèles sources associent des noms différents au même rôle, le nom utilisé dans le dernier modèle source prévaut sur le nom 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 également 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 également 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.