获取索引时qmodelindex的父参数

parent parameter for qmodelindex when getting the index

本文关键字:参数 qmodelindex 索引 获取      更新时间:2023-10-16

代码行如下:

QModelIndex id = tm->index(r, ec, QModelIndex());

所以我有我自己的模型是tm,我试图访问它的索引。r表示行,ec表示列。我注意到他们在第三个参数上添加了QModelIndex()。第三个参数表示父索引。

tm只是一个简单的QTableView。真的需要提供QModelIndex吗?我试着阅读Qt手册,但我似乎找不到任何简单的解释,当提供一个父索引。

引自文档:

无效的模型索引可以用QModelIndex构造函数构造。当引用模型中的顶级项时,无效索引通常用作父索引。

模型中的每个顶级项都由一个没有父索引的模型索引表示——在这种情况下,parent()将返回一个无效的模型索引,相当于用QModelIndex()构造函数的零参数形式构造的索引。

所以如果你没有嵌套的数据(像你的QTableView),父索引将永远是一个无效的。

QAbstractItemModel::index的签名为:

QModelIndex QAbstractItemModel::index(int row, int column, const QModelIndex & parent = QModelIndex()) const

最后一个参数是可选的,在您的例子中,您可以省略它来提供无效的模型索引。