QAbstractTableModel¶
The
QAbstractTableModel
class provides an abstract model that can be subclassed to create table models. More…
Inherited by: QSqlQueryModel, QSqlRelationalTableModel, QSqlTableModel
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 aQListView
. If you need to represent a simple list of items, and only need a model to contain a single column of data, subclassing theQAbstractListModel
may be more appropriate.The
rowCount()
andcolumnCount()
functions return the dimensions of the table. To retrieve a model index corresponding to an item in the model, useindex()
and provide only the row and column numbers.
Subclassing¶
When subclassing
QAbstractTableModel
, you must implementrowCount()
,columnCount()
, anddata()
. Default implementations of theindex()
andparent()
functions are provided byQAbstractTableModel
. Well behaved models will also implementheaderData()
.Editable models need to implement
setData()
, and implementflags()
to return a value containingItemIsEditable
.Models that provide interfaces to resizable data structures can provide implementations of
insertRows()
,removeRows()
,insertColumns()
, andremoveColumns()
. When implementing these functions, it is important to call the appropriate functions so that all connected views are aware of any changes:
An
insertRows()
implementation must callbeginInsertRows()
before inserting new rows into the data structure, and it must callendInsertRows()
immediately afterwards.An
insertColumns()
implementation must callbeginInsertColumns()
before inserting new columns into the data structure, and it must callendInsertColumns()
immediately afterwards.A
removeRows()
implementation must callbeginRemoveRows()
before the rows are removed from the data structure, and it must callendRemoveRows()
immediately afterwards.A
removeColumns()
implementation must callbeginRemoveColumns()
before the columns are removed from the data structure, and it must callendRemoveColumns()
immediately afterwards.Note
Some general guidelines for subclassing models are available in the Model Subclassing Reference .
- class PySide2.QtCore.QAbstractTableModel([parent=None])¶
- param parent:
Constructs an abstract table model for the given
parent
.
© 2022 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.