Класс QAbstractTableModel
Класс QAbstractTableModel предоставляет абстрактную модель, которая может быть унаследована для создания моделей таблиц. Подробнее...
| Заголовок: | #include <QAbstractTableModel> |
| CMake: | find_package(Qt6 COMPONENTS Core REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| 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-6.1/qabstracttablemodel.html