如何在列表视图中设置选择?

4

我有一个使用QStringModel的listview,我想通过编程的方式改变它的选择。我有一个整数索引列表作为Python列表,[1,3,4],我想要选择它们。如何选择这些索引?Listview是否有一种函数可以让我选择一行?


你尝试过从listview中使用setSelection方法吗?http://pyqt.sourceforge.net/Docs/PyQt4/qlistview.html#setSelection - arjunaskykok
1
是的,但它不会接受一个简单的Python索引列表,比如[1,2,3,4]。它需要一些其他的对象。 - Anthony Lozano
2个回答

3

最终我自己解决了问题,这里是答案。假设您有一个列表视图“myListview”,对应的模型“myQStringListModel”至少有6个元素(0-5),以及一个索引数组[1,3,5]:

theIndices = [1,3,5]
theQIndexObjects = [self.myQStringListModel.createIndex(rowIndex, 0, self.coverages_lm) for rowIndex in theIndices]
for Qindex in theQIndexObjects:
    myListview.selectionModel().select(Qindex, QtGui.QItemSelectionModel.Select)

我觉得使用模型创建索引对象并不是很直接,但我想这是有道理的。


-2

我猜你用的是 QStringListModel 而不是 QStringModel,假设你使用的是 QListView。这里是代码:

    model = new QStringListModel(this);

listView = new QListView;
listView->setModel(model);
listView->setSelectionMode(QAbstractItemView::MultiSelection);//you can select many selections;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接