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.