QStandardItemModel的index和item方法有什么区别?

时间:2017-04-11 02:03:12

标签: qt pyqt pyqt4 pyqt5

我的朋友们,请您解释一下这些方法的概念给我?通常,当我获得数据时,我会使用'index'来引用模型中的项目,并通过data属性指定角色。我今天遇到了'item'方法,这个方法的解释是“返回给定行和列的项目(如果已设置);否则返回0”。与'index'+'data'方法有什么区别?这只是一条捷径吗?

这是'item'方法的文档。 https://doc.qt.io/qt-5/qstandarditemmodel.html#item

或者,这是'index'方法的文档。 https://doc.qt.io/qt-5/qstandarditemmodel.html#index

1 个答案:

答案 0 :(得分:1)

我会尽力解释它。

该项目就像您在视图中看到的实际小部件(它实际上并不是一个小部件,但我认为这是一个很好的思考方式)。这是用户实际看到的内容。

索引更多是在幕后。"它就像是指向模型中某个位置的指针。

项目可以不存在索引。但是没有项目就不能存在有效的索引。在将项目放入模型时,该项目仅与索引相关联。否则,它只是一个无人能看的项目。

以数组为例......它包含多个"项目"。您可以通过提供数字(也称为索引)来指定所需数组中的项目。简单地说,索引仅在与数组中的项关联时才存在。但是这个项目可以存在于数组之外,并且在没有索引的情况下也可以存在。

创建QModelIndex是一种引用模型中项目的轻量级方法。类似于使用数字表示存储在数组中的对象的方式。