Qt模型视图编程:创建索引

Qt模型视图编程:创建索引,qt,Qt,我正在阅读以下文档,以加深对模型视图编程的理解: http://qt-project.org/doc/qt-4.8/model-view-programming.html 尽管写得很好,但我对创建索引有一个疑问。据我所知,要计算项目的索引,我们需要其父项目的索引。要计算父项的索引,我们需要子项的索引。所以这是一个循环依赖。你怎么打破它的 如果您阅读以下部分: 行和列 该图显示了基本表模型的表示形式,其中每个项都由一对行号和列号定位。我们获得了 通过传递相关行引用数据项的模型索引 以及模型的列编

我正在阅读以下文档,以加深对模型视图编程的理解:

http://qt-project.org/doc/qt-4.8/model-view-programming.html
尽管写得很好,但我对创建索引有一个疑问。据我所知,要计算项目的索引,我们需要其父项目的索引。要计算父项的索引,我们需要子项的索引。所以这是一个循环依赖。你怎么打破它的

如果您阅读以下部分:

行和列

该图显示了基本表模型的表示形式,其中每个项都由一对行号和列号定位。我们获得了 通过传递相关行引用数据项的模型索引 以及模型的列编号

模型中的顶级项始终通过指定QModelIndex()作为其父项来引用。这将在下一节中讨论 节


我不明白Qt是如何知道计算A的索引的,父索引应该是QModelIndex()(即顶级项的索引)

据我所知,计算和项目的指数,我们需要的指数 它的父项

是的,除非它是顶级项目

要计算父项的索引,我们需要子项的索引


不可以。一个索引不能有多个父索引,所以只需调用
QModelIndex::parent()const

“Qt如何知道计算一个索引的索引,父索引应该是QModelIndex()”它是这样的。
 QModelIndex indexA = model->index(0, 0, QModelIndex());
 QModelIndex indexB = model->index(1, 1, QModelIndex());
 QModelIndex indexC = model->index(2, 1, QModelIndex());