Qt QSelectionModel索引是如何工作的?

Qt QSelectionModel索引是如何工作的?,qt,pyqt,pyqt4,Qt,Pyqt,Pyqt4,我有一个使用代理模型的列表视图,代码如下: lastCurrRow = self.listView.selectionModel().currentIndex().row() #last row currently selected last = self.proxyModel.rowCount() - 1 #last row in view print("lastCurrRow = %d\nlast = %d" %(lastCurrRow

我有一个使用代理模型的列表视图,代码如下:

lastCurrRow = self.listView.selectionModel().currentIndex().row() #last row currently selected
last = self.proxyModel.rowCount() - 1                             #last row in view
print("lastCurrRow = %d\nlast = %d" %(lastCurrRow, last))
当列表视图中的最后一项被选中时,我得到如下输出

lastCurrRow = 100
last = 100
lastCurrRow = 96
last = 100
但如果我选择任何其他行,比如最后第二行,我会得到如下输出

lastCurrRow = 100
last = 100
lastCurrRow = 96
last = 100
我应该在代码中的某个地方寻找bug,还是这很正常?QSelectionModel中的QModelIndexes与代理模型中的QModelIndexes是否本质上不同?我已经成功地使用了这些代码行,而没有实际检查它们返回的内容,但是现在我尝试做一些稍微不同的事情,并发现了这个奇怪之处

注意:我不是在寻求代码方面的帮助,我只是想更好地了解QSelectionModel是如何工作的

更新:事实证明我并不需要这些台词来做我想做的事情。我仍然想知道我得到的结果背后的原因