我使用PyQt5并在IconMode中有一个QListView(带有自定义委托,想想缩略图查看器)。
当我点击一个项目并使用光标键进行导航时,一切都很好。但是,当我以编程方式选择项目并在之后按光标键时,选择将跳转到第一个项目。此外,listView.scrollTo(index)不做任何事情。我完全失去了......
在选择项目的函数中,这就是我所做的:
listView.selectionModel().select(QtCore.QItemSelection(index, index), QtCore.QItemSelectionModel.ClearAndSelect)
listView.scrollTo(index)
listView.setCurrentIndex(index)
选择新项目会发生什么(在我的委托的绘画功能中,option.state
有QtWidgets.QStyle.State_Selected
标志),但视图没有滚动进行制作可见。该项目也是"当前" (listView.currentIndex()
返回新索引)
当我按下" down"光标键,视图中的第一个项目被选中并且当前,视图滚动到第一个项目
顺便说一句,如果我省略对selectionModel().select(...)
的调用,行为是一样的。
非常感谢任何帮助! 谢谢,奥利弗