【发布时间】:2017-06-07 07:01:43
【问题描述】:
我仍然很难理解 QAbstractItemModel 的项目表示。有两种返回 QModelIndex 项的方法对我来说没有任何意义。
QModelIndex QAbstractItemModel::index(int row, int column, const QModelIndex& index)
是第一个。传递给这个函数的视图是什么?我索引特定的树项以创建索引?如果是这样,该功能的意义何在?为什么不只返回索引?行和列分别代表什么?索引实际上是父节点,函数根据该父节点下的行数返回特定索引吗?列在这里只是一个空操作吗?
当使用传递的行参数时,如果有的话,第 0 行是指索引/父节点本身,还是它下面的第一项?
第二,
QModelIndex QAbstractItemModel::parent(const QModelIndex& index) const
这个方法似乎会返回所传递索引的直接父级。我正在使用一个本质上类似于树的数据结构,但存储在一个平面数组中,数组元素包含有关树深度的信息,因此直接父级总是有一个深度小于其自身深度 1 的父级。但是在这种情况下,createIndex 会得到什么?内部 QModelIndex 行、列和 internalPointer 指的是什么?鉴于我使用的基于数组的结构,array[0] 的父级应该是什么?
我已经阅读了有关这些主题的 Qt 示例和文档,但似乎无法在理解这些类的工作原理方面取得任何进展。
【问题讨论】:
标签: c++ qt tree qtreeview qabstractitemmodel