我有一个QTableView,它是这样创建的:
self.preset_delegate = PresetDelegate() # used to provide a combobox for making a selection from a set of options, column 0
self.model_filelist = QtGui.QStandardItemModel()
self.model_filelist.setHorizontalHeaderLabels(HEADER_LABELS)
self.list_filelist = QtGui.QTableView()
self.list_filelist.horizontalHeader().setResizeMode( QtGui.QHeaderView.Interactive )
self.list_filelist.setItemDelegateForColumn(0, self.preset_delegate )
self.list_filelist.setModel( self.model_filelist )
self.list_filelist.setSelectionMode( QtGui.QAbstractItemView.ExtendedSelection )
当用户按下按钮时,我想从表中从算法上选择行。所选内容将不连续。在我们的讨论中,它可以是模型/表中任何行的随机子集。在
这是我用来做选择的伪代码:
^{pr2}$我的问题是最后一行的with selection model标志。无论我使用SelectCurrent、ToggleCurrent或Select | Current,还是Toggle | Current,我都只得到匹配集中最后一个在循环结束时仍然被选中的项。当循环执行时,所选内容将从一个项目更改为另一个项目,而不是将新行添加到选择集。我希望这有道理。在
我确信SelectCurrent标志是实现此目的的方法,但它对我不起作用。有什么建议吗?(python 2.6.7,Fedora 14,Qt4.4???我不确定)
根据对问题的评论。我没有解决原始代码失败的原因,但我发现这是可行的:
使用select()的版本,它接受一个QItemSelection对象,并使用QItemSelectRange对象加载该对象,这些对象将ModelIndex包装到我感兴趣的行中。在
相关问题 更多 >
编程相关推荐