The QAbstractTableModel class provides an abstract model that can be subclassed to create table models. More

Inheritance diagram of PySide6.QtCore.QAbstractTableModel

Inherited by: QSqlQueryModel, QSqlTableModel, QSqlRelationalTableModel


This documentation may contain snippets that were automatically translated from C++ to Python. We always welcome contributions to the snippet translation. If you see an issue with the translation, you can also let us know by creating a ticket on https:/

Detailed Description#

QAbstractTableModel provides a standard interface for models that represent their data as a two-dimensional array of items. It is not used directly, but must be subclassed.

Since the model provides a more specialized interface than QAbstractItemModel , it is not suitable for use with tree views, although it can be used to provide data to a QListView . If you need to represent a simple list of items, and only need a model to contain a single column of data, subclassing the QAbstractListModel may be more appropriate.

The rowCount() and columnCount() functions return the dimensions of the table. To retrieve a model index corresponding to an item in the model, use index() and provide only the row and column numbers.


When subclassing QAbstractTableModel , you must implement rowCount() , columnCount() , and data() . Default implementations of the index() and parent() functions are provided by QAbstractTableModel . Well behaved models will also implement headerData() .

Editable models need to implement setData() , and implement flags() to return a value containing ItemIsEditable .

Models that provide interfaces to resizable data structures can provide implementations of insertRows() , removeRows() , insertColumns() , and removeColumns() . When implementing these functions, it is important to call the appropriate functions so that all connected views are aware of any changes:


Some general guidelines for subclassing models are available in the Model Subclassing Reference .

class PySide6.QtCore.QAbstractTableModel([parent=None])#


Constructs an abstract table model for the given parent.