Класс QAbstractTableModel
Класс QAbstractTableModel предоставляет абстрактную модель, которую можно наследовать для создания моделей таблиц. Подробнее...
| Заголовок: | #include <QAbstractTableModel> |
| qmake: | QT += core |
| Наследует: | QAbstractItemModel |
Открытые функции
| QAbstractTableModel(QObject *parent = nullptr) | |
| virtual | ~QAbstractTableModel() |
Переопределённые открытые функции
| 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 |
Подробное описание
QAbstractTableModel предоставляет стандартный интерфейс для моделей, которые представляют свои данные как двумерный массив элементов. Он не используется напрямую, а должен быть наследоваться.
Поскольку модель предоставляет более специализированный интерфейс, чем QAbstractItemModel, она не подходит для использования с древовидными представлениями, хотя её можно использовать для предоставления данных в QListView. Если вам нужно представить простой список элементов и вам нужна модель, содержащая только один столбец данных, наследование от QAbstractListModel может быть более уместным.
Функции rowCount() и columnCount() возвращают размеры таблицы. Для получения индекса модели, соответствующего элементу в модели, используйте index() и укажите только номер строки и столбца.
Наследование
При наследовании от QAbstractTableModel, необходимо реализовать rowCount(), columnCount() и data(). QAbstractTableModel предоставляет стандартные реализации функций index() и parent(). Хорошо написанные модели также реализуют headerData().
Для редактируемых моделей необходимо реализовать setData() и реализовать flags(), чтобы возвращать значение, содержащее Qt::ItemIsEditable.
Модели, предоставляющие интерфейсы для изменения размеров данных, могут предоставить реализации insertRows(), removeRows(), insertColumns() и removeColumns(). При реализации этих функций важно вызывать соответствующие функции, чтобы все подключенные представления были осведомлены об изменениях:
- Реализация insertRows() должна вызывать beginInsertRows() до вставки новых строк в структуру данных и вызывать endInsertRows() немедленно после.
- Реализация insertColumns() должна вызывать beginInsertColumns() до вставки новых столбцов в структуру данных и вызывать endInsertColumns() немедленно после.
- Реализация removeRows() должна вызывать beginRemoveRows() до удаления строк из структуры данных и вызывать endRemoveRows() немедленно после.
- Реализация removeColumns() должна вызывать beginRemoveColumns() до удаления столбцов из структуры данных и вызывать endRemoveColumns() немедленно после.
Примечание: Некоторые общие рекомендации по наследованию от моделей доступны в разделе Ссылка по наследованию от моделей.
См. также Классы моделей, QAbstractItemModel, QAbstractListModel и Пример Pixelator.
Документация по функциям-членам
QAbstractTableModel::QAbstractTableModel(QObject *parent = nullptr)
Конструирует абстрактную модель таблицы для заданного parent.
[virtual] QAbstractTableModel::~QAbstractTableModel()
Уничтожает абстрактную модель таблицы.
[override virtual] bool QAbstractTableModel::dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent)
Переопределяет: 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
Переопределяет: QAbstractItemModel::flags(const QModelIndex &index) const.
[override virtual] QModelIndex QAbstractTableModel::index(int row, int column, const QModelIndex &parent = QModelIndex()) const
Переопределяет: QAbstractItemModel::index(int row, int column, const QModelIndex &parent) const.
Возвращает индекс данных в row и column с parent.
См. также parent().
[override virtual] QModelIndex QAbstractTableModel::sibling(int row, int column, const QModelIndex &idx) const
Переопределяет: QAbstractItemModel::sibling(int row, int column, const QModelIndex &index) const.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.15/qabstracttablemodel.html