我仍然很难理解QAbstractItemModel对项的表示。有两种方法返回QModelIndex项,但它们对我来说毫无意义。
QModelIndex QAbstractItemModel::index(int row, int column, const QModelIndex& index)
这是第一句。这个函数接受的参数是什么视图?我索引特定的树项来创建一个索引吗?如果是,那么这个函数有什么意义呢?为什么不直接返回索引? row 和 column 代表什么?索引实际上是父节点吗,该函数基于父节点下面的行数返回具体的索引?在这里column只是无操作吗?
当传递的row参数被使用时,如果有的话,row 0是指索引/父节点本身还是它下面的第一项?
其次,
QModelIndex QAbstractItemModel::parent(const QModelIndex& index) const
似乎这个方法将返回传递索引的直接父级。我正在处理一种本质上类似树形结构但存储在平面数组中的数据结构,其中数组元素包含有关树深度的信息,因此直接父级始终具有比自己深度小1的父级。但是在这种情况下,createIndex接收到了什么?内部QModelIndex行、列和内部指针是什么意思?考虑到我使用的基于数组的结构,array [0]的父级应该是什么?
我已经阅读了Qt这些主题的示例和文档,但似乎无法理解这些类如何工作。