Sur cette page

QAbstractTableModel Class

La classe QAbstractTableModel fournit un modèle abstrait qui peut être sous-classé pour créer des modèles de table. Plus d'informations...

En-tête : #include <QAbstractTableModel>
CMake : find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake : QT += core
Hérite : QAbstractItemModel
Hérité par :

QSqlQueryModel

Fonctions publiques

QAbstractTableModel(QObject *parent = nullptr)
virtual ~QAbstractTableModel()

Fonctions publiques réimplémentées

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 QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const override
virtual QModelIndex sibling(int row, int column, const QModelIndex &idx) const override

Description détaillée

QAbstractTableModel fournit une interface standard pour les modèles qui représentent leurs données sous la forme d'un tableau bidimensionnel d'éléments. Elle n'est pas utilisée directement, mais doit être sous-classée.

Étant donné que le modèle fournit une interface plus spécialisée que QAbstractItemModel, il ne convient pas aux vues arborescentes, bien qu'il puisse être utilisé pour fournir des données à QListView. Si vous devez représenter une simple liste d'éléments et que vous n'avez besoin que d'un modèle contenant une seule colonne de données, il peut être plus approprié de sous-classer QAbstractListModel.

Les fonctions rowCount() et columnCount() renvoient les dimensions du tableau. Pour récupérer un index de modèle correspondant à un élément du modèle, utilisez index() et fournissez uniquement les numéros de ligne et de colonne.

Sous-classement

Lorsque vous sous-classez QAbstractTableModel, vous devez implémenter les fonctions rowCount(), columnCount() et data(). Les implémentations par défaut des fonctions index() et parent() sont fournies par QAbstractTableModel. Les modèles qui se comportent bien implémenteront également headerData().

Les modèles modifiables doivent implémenter setData() et flags() pour renvoyer une valeur contenant Qt::ItemIsEditable.

Les modèles qui fournissent des interfaces pour les structures de données redimensionnables peuvent fournir des implémentations de insertRows(), removeRows(), insertColumns() et removeColumns(). Lors de l'implémentation de ces fonctions, il est important d'appeler les fonctions appropriées afin que toutes les vues connectées soient informées de tout changement :

Remarque : des lignes directrices générales concernant la sous-classification des modèles sont disponibles dans le document Model Subclassing Reference (Référence pour la sous-classification des modèles).

Sécurité des threads

Étant une sous-classe de QObject, QAbstractTableModel n'est pas thread-safe. Toute API liée au modèle QAbstractTableModel ne doit être appelée qu'à partir du thread dans lequel vit l'objet du modèle. Si QAbstractTableModel est connecté à une vue, il opère sur le thread de l'interface graphique, car la vue y réside et interagit avec le modèle à partir de ce thread. Bien qu'un thread d'arrière-plan puisse être utilisé pour remplir ou modifier le contenu du modèle, il doit le faire avec précaution, car il ne peut appeler directement aucune API liée au modèle. Au lieu de cela, vous devez mettre les mises à jour en file d'attente et les appliquer dans le fil d'exécution principal. Cela peut se faire à l'aide de connexions en file d'attente.

Voir aussi Classes de modèles, QAbstractItemModel, et QAbstractListModel.

Documentation des fonctions membres

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

Construit un modèle de table abstraite pour le site parent donné.

[virtual noexcept] QAbstractTableModel::~QAbstractTableModel()

Détruit le modèle de table abstraite.

[override virtual] bool QAbstractTableModel::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] Qt::ItemFlags QAbstractTableModel::flags(const QModelIndex &index) const

Réimplémente : QAbstractItemModel::flags(const QModelIndex &index) const.

[override virtual] QModelIndex QAbstractTableModel::index(int row, int column, const QModelIndex &parent = QModelIndex()) const

Réimplémente : QAbstractItemModel::index(int row, int column, const QModelIndex &parent) const.

Renvoie l'index des données dans row et column avec parent.

Voir également parent().

[override virtual] QModelIndex QAbstractTableModel::sibling(int row, int column, const QModelIndex &idx) const

Réimplémente : QAbstractItemModel::sibling(int row, int column, 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.