栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

Qt入门教程【数据模型篇】 QAbstractTableModel抽象表格模型

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Qt入门教程【数据模型篇】 QAbstractTableModel抽象表格模型

QAbstractTableModel Class

类提供了一个抽象模型,可以对其进行子类化以创建表模型

公共功能
QAbstractTableModel(QObject *parent = nullptr)
virtual~QAbstractTableModel()
重新实现的公共功能
virtual booldropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) override
virtual Qt::ItemFlagsflags(const QModelIndex &index) const override
virtual QModelIndexindex(int row, int column, const QModelIndex &parent = QModelIndex()) const override
virtual QModelIndexsibling(int row, int column, const QModelIndex &idx) const override
详细说明

QAbstractTableModel 为模型提供了一个标准接口,这些模型将其数据表示为二维项目数组。它不直接使用,但必须进行子类化。

由于该模型提供了比 QAbstractItemModel 更专业的接口,因此它不适合与树视图一起使用,尽管它可用于向 QListView 提供数据。如果需要表示简单的项列表,并且只需要一个模型来包含单列数据,则对 QAbstractListModel 进行子类化可能更合适。

rowCount() 和 columnCount() 函数返回表的维度。若要检索与模型中的项对应的模型索引,请使用 index() 并仅提供行号和列号。

子类

在子类化 QAbstractTableModel 时,必须实现 rowCount()、columnCount() 和 data()。index() 和 parent() 函数的默认实现由 QAbstractTableModel 提供。行为良好的模型也将实现 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)

为给定父级构造抽象表模型。

  • [virtual]QAbstractTableModel::~QAbstractTableModel()

销毁抽象表模型。

  • [override virtual]bool QAbstractTableModel::dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent)

重新实现: QAbstractItemModel::d ropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent).

  • [override virtual]Qt::ItemFlagsQAbstractTableModel::flags(const QModelIndex &index) const

Reimplements: QAbstractItemModel::flags(const QModelIndex &index) const.

  • [override virtual]`QModelIndexQAbstractTableModel::index(int row, int column, const QModelIndex &parent = QModelIndex()) const

重新实现: QAbstractItemModel::index(int row, int column, const QModelIndex &parent) const.

返回具有父级的行和列中的数据索引。

另请参见 parent()。

  • QModelIndexQAbstractTableModel::sibling(int row, int column, const QModelIndex &idx) const

重新实现: QAbstractItemModel::sibling(int row, int column, const QModelIndex &index) const.

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/954079.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号