Sur cette page

QAbstractTableModel Class

La classe `QAbstractTableModel` fournit un modèle abstrait pouvant être sous-classé pour créer des modèles de tableaux. En savoir plus...

En-tête : #include <QAbstractTableModel>
CMake : find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake : QT += core
Hérite de : 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. Il n'est pas utilisé directement, mais doit être sous-classé.

Comme ce modèle fournit une interface plus spécialisée que QAbstractItemModel, il n’est pas adapté à une utilisation avec des arborescences, bien qu’il puisse servir à fournir des données à un QListView. Si vous devez représenter une simple liste d’éléments et que vous n’avez besoin d’un modèle contenant qu’une seule colonne de données, il peut être plus approprié de créer une sous-classe de QAbstractListModel.

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

Sous-classement

Lorsque vous créez une sous-classe de `QAbstractTableModel`, vous devez implémenter les méthodes ` rowCount()`, ` columnCount()` et ` data()`. Des implémentations par défaut des méthodes ` index()` et ` parent()` sont fournies par `QAbstractTableModel`. Les modèles bien conçus implémenteront également la méthode ` headerData()`.

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

Les modèles fournissant des interfaces vers des structures de données redimensionnables peuvent proposer 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 : certaines directives générales concernant la sous-classification des modèles sont disponibles dans la référence sur la sous-classification des modèles.

Sécurité des threads

En tant que 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 réside l'objet modèle. Si QAbstractTableModel est connecté à une vue, il s'exécute 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. Vous devez plutôt mettre les mises à jour en file d’attente et les appliquer dans le thread principal. Cela peut être réalisé à l’aide de connexions mises en file d’attente.

Voir également Classes de modèles, QAbstractItemModel, QAbstractListModel et QRangeModel.

Documentation sur les fonctions membres

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

Crée un modèle de table abstrait pour l'parent.

[virtual noexcept] QAbstractTableModel::~QAbstractTableModel()

Supprime le modèle de table abstrait.

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

[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émentation de : QAbstractItemModel::index(int row, int column, const QModelIndex &parent) const.

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

Voir aussi 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.