从QListView自动选择元素

问题描述

我有一个QListView小部件,其中包含一组元素。每当此QListView更新(并在GUI中显示)时,我都试图自动选择最后一个元素。

我想做的是这样的:

list_view_1  = QtWidgets.QListView()
element_list = QStandardItemmodel(list_view_1)

element_list.appendRow(QStandardItem(element))
list_view_1.setModel(element_list)

list_view_1.setCurrentIndex(len(element_list))

最后一条命令似乎无效。我尝试查看以前的所有帖子,但找不到适合我的东西。

解决方法

要获取模型中最后一个元素的索引,可以使用类似的

index = element_list.index(element_list.rowCount()-1,0)
list_view_1.setCurrentIndex(index)

但是,由于您刚刚创建并添加了该项,因此您还可以执行类似的操作

item = QStandardItem(element)
element_list.appendRow(item)
list_view_1.setModel(element_list)

index = element_list.indexFromItem(item)
list_view_1.setCurrentIndex(index)