StupidBeauty
Read times:3673Posted at:Sat Mar 4 10:54:42 2017 - no title specified

Qt5.8文档翻译:QAbstractListModel,QAbstractListModel Class

QAbstractListModel 类,提供了一个抽象的模型, 可被子类化,以用来创建一维的列表模型。 详细说明……

头文件:

#include <QAbstractListModel>

qmake指令

QT += core

继承

QAbstractItemModel

被继承:

QStringListModel

详细说明

QAbstractListModel 类,提供了一个抽象的模型, 可被子类化,以用来创建一维的列表模型。

QAbstractListModel 为那些想要以简单的非层次型条目序列的方式 示其数据的模型提供了一个标准接口。 它无法被直接使用,必须被子类化。

这个模型 相比于 QAbstractItemModel 来说 提供 了一个更具体的接口,因此, 它不适合于用来与树形视图配套使用;如果 妳需要提供那种形式的模型,那么,妳就需要子类化 QAbstractItemModel 。如果 妳需要使用多个列表模型来管理妳的数据的话,那么,更合适的做法是子类化 QAbstractTableModel

通过子类 化这个类,并且实现最少量的必须函数,即可创建 出简单的模型。例如 我们可以实现一个简单的、只读的、基于 QStringList 的模型, 它向某个 QListView 部件提供一组字符串。 在这种情况下,我们仅仅需要实现的是, rowCount ()函数,用来返回列表中条目的个数,以及 data ()函数,用来获取列表中指定的条目。

由于 这个模型代表的是一个一维的结构,因此, rowCount ()函数返回 的是模型中所有条目的个数。 它还实现了 columnCount ()函数,以便与所有类型的视图进行正确的交互,但是 ,默认情况下, 它会向所有视图告知,此模型仅仅包含一列数据。

子类化

在对 QAbstractListModel 进行子类化时,妳必须实现 rowCount ()和 data ()函数。行为比较端庄 的模型还会实现 headerData ()函数。

如果 妳的模型要在QML 中使用,并且需要使用那些超出 roleNames ()函数提供 的默认角色范围之外的角色,那么 ,妳必须覆盖这个函数。

对于 可编辑的列表模型, 妳还必须实现 setData ()函数, 以及 flags ()函数,让后者返回一个包含了 Qt::ItemIsEditable 的值。

注意 QAbstractListModel 针对 columnCount ()提供了一个默认实现,会告知各个视图说这个模型中只包含一个数据列。

对于那些提供 了可变长度的列表类型数据结构风格接口的模型, 可以实现 insertRows ()和 removeRows ()。 在实现这些函数时,要注意, 要调用相关的一些其它函数,以使得所有当前处于连接状态的视图都知道发生了变化:

注意 模型子类 化参考 中,有一些关于对模型进行子类化时要遵守的常规指南。

参考 模型 模型子类 化参考 QAbstractItemView QAbstractTableModel 条目视图解谜示例

成员函数文档

[virtual] QModelIndex  QAbstractListModel:: index ( int row int column  = 0, const  QModelIndex  & parent  = QModelIndex()) const

覆盖 QAbstractItemModel::index ()。

返回亲代对象parent之下的第 row 行第 column 列的数据的索引。

参考 parent ()

未知美人

菊花

未知美人

Satellizer eL Bridget

短信报警

12110

这些专业人士值得点赞

Your opinions
Your name:Email:Website url:Opinion content:
- no title specified

HxLauncher: Launch Android applications by voice commands