Класс 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 = ...) 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(). Модель предоставляет стандартную реализацию функций 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 = ...) 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.13/qabstracttablemodel.html