2013-04-03 21 views
3

我有一个QStringModel的列表视图,我想改变它的编程选择。我有一个Python索引列表,作为整数,[1,3,4],我想选择。我怎样才能选择这些指数? listview是否有一个函数可以让我选择一行?如何在列表视图中设置选择?

+0

你是否尝试过使用listview的setSelection方法? http://pyqt.sourceforge.net/Docs/PyQt4/qlistview.html#setSelection – vajrasky

+1

是的,但它不会像简单的Python索引列表,如[1,2,3,4]。它需要一些其他的对象。 –

回答

2

终于找到它了自己,这里就是答案,假设你有一个列表视图“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) 

IMO它不是非常直截了当,你必须使用该模型创建一个索引对象,但我猜是有道理的。

-2

我猜你使用的QStringListModel不是QStringModel,假设你使用QListView.Here是代码

model = new QStringListModel(this); 

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