QAbstractTableModel Class
The QAbstractTableModel class provides an abstract model that can be subclassed to create table models. More...
Header: | #include <QAbstractTableModel> |
qmake: | QT += core |
Inherits: | QAbstractItemModel |
Public Functions
QAbstractTableModel(QObject *parent = nullptr) | |
virtual | ~QAbstractTableModel() |
Reimplemented Public Functions
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 = ...) const override |
virtual QModelIndex | sibling(int row, int column, const QModelIndex &idx) const override |
- 40 public functions inherited from QAbstractItemModel
- 32 public functions inherited from QObject
Static Public Members
const QMetaObject | staticMetaObject |
- 10 static public members inherited from QObject
Additional Inherited Members
- 1 property inherited from QObject
- 2 public slots inherited from QAbstractItemModel
- 1 public slot inherited from QObject
- 18 signals inherited from QAbstractItemModel
- 2 signals inherited from QObject
- 19 protected functions inherited from QAbstractItemModel
- 9 protected functions inherited from QObject
- 1 protected slot inherited from QAbstractItemModel
Detailed Description
The QAbstractTableModel class provides an abstract model that can be subclassed to create table models.
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.
Subclassing
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 Qt::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:
- An insertRows() implementation must call beginInsertRows() before inserting new rows into the data structure, and it must call endInsertRows() immediately afterwards.
- An insertColumns() implementation must call beginInsertColumns() before inserting new columns into the data structure, and it must call endInsertColumns() immediately afterwards.
- A removeRows() implementation must call beginRemoveRows() before the rows are removed from the data structure, and it must call endRemoveRows() immediately afterwards.
- A removeColumns() implementation must call beginRemoveColumns() before the columns are removed from the data structure, and it must call endRemoveColumns() immediately afterwards.
Note: Some general guidelines for subclassing models are available in the Model Subclassing Reference.
See also Model Classes, QAbstractItemModel, QAbstractListModel, and Pixelator Example.
Member Function Documentation
QAbstractTableModel::QAbstractTableModel(QObject *parent = nullptr)
Constructs an abstract table model for the given parent.
[virtual]
QAbstractTableModel::~QAbstractTableModel()
Destroys the abstract table model.
[override virtual]
bool QAbstractTableModel::dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent)
Reimplemented from QAbstractItemModel::dropMimeData().
[override virtual]
Qt::ItemFlags QAbstractTableModel::flags(const QModelIndex &index) const
Reimplemented from QAbstractItemModel::flags().
[override virtual]
QModelIndex QAbstractTableModel::index(int row, int column, const QModelIndex &parent = ...) const
Reimplemented from QAbstractItemModel::index().
Returns the index of the data in row and column with parent.
See also parent().
[override virtual]
QModelIndex QAbstractTableModel::sibling(int row, int column, const QModelIndex &idx) const
Reimplemented from QAbstractItemModel::sibling().
© 2019 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.