我正在阅读以下文档,以增加我对模型视图编程的理解:
http://qt-project.org/doc/qt-4.8/model-view-programming.html
虽然写得很好,但我有一个关于创建索引的问题。据我所知,计算和项目的索引我们需要其父项的索引。要计算父项的索引,我们需要子项的索引。所以它是循环依赖。你怎么打破它?
如果您按照以下部分进行操作:
行和列
该图显示了基本表模型的表示,其中每个项目由一对行号和列号定位。我们获得了一个 模型索引,通过传递相关行来引用数据项 和列号到模型。
QModelIndex indexA = model->index(0, 0, QModelIndex());
QModelIndex indexB = model->index(1, 1, QModelIndex());
QModelIndex indexC = model->index(2, 1, QModelIndex());
通过将QModelIndex()指定为其父项,始终引用模型中的顶级项。这将在下面讨论 部分。
我不明白Qt如何知道计算A的索引,父索引应该是QModelIndex()(即顶级项目的索引)。
答案 0 :(得分:0)
据我所知,计算和项目的索引我们需要索引 它的父项。
是的,除非它是顶级项目。
要计算父项的索引,我们需要子项的索引。
没有。索引不能包含多个父级,因此只需调用QModelIndex::parent() const
。