保持在QListView中选择已编辑的项目

时间:2011-03-15 13:28:07

标签: qt4 pyqt4

我实施了一个自定义QAbstractListModel,该自定义显示在可编辑的QListView中。必须对模型中的项进行排序,因此模型实现sort()方法,并在存储数据后从setData()调用它。

当前行为是用户编辑项目,模型已排序,QListView已更新。但选择仍保留在编辑发生的索引处的项目上。相反,我希望选择移动到已编辑项目的新索引。

如何使用项目进行选择?

1 个答案:

答案 0 :(得分:1)

我终于找到了实现这一目标的方法。它就像连接到模型的dataChanged(QModelIndex, QModelIndex)信号并更新处理程序中的选择一样简单。我的错误是在排序模型之前我在setData() 中调用了信号。

相反,必须首先对模型进行排序,然后才能找到修改项的新索引,最后,必须使用新索引调用dataChanged(QModelIndex, QModelIndex)信号。 / p>