我有一个使用QStringModel的listview,我想通过编程的方式改变它的选择。我有一个整数索引列表作为Python列表,[1,3,4],我想要选择它们。如何选择这些索引?Listview是否有一种函数可以让我选择一行?
我有一个使用QStringModel的listview,我想通过编程的方式改变它的选择。我有一个整数索引列表作为Python列表,[1,3,4],我想要选择它们。如何选择这些索引?Listview是否有一种函数可以让我选择一行?
最终我自己解决了问题,这里是答案。假设您有一个列表视图“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)
我觉得使用模型创建索引对象并不是很直接,但我想这是有道理的。
我猜你用的是 QStringListModel 而不是 QStringModel,假设你使用的是 QListView。这里是代码:
model = new QStringListModel(this);
listView = new QListView;
listView->setModel(model);
listView->setSelectionMode(QAbstractItemView::MultiSelection);//you can select many selections;