pyQt QTableView选择一组不连续的行

2024-10-05 21:58:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个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???我不确定)


Tags: 项目self内容model标志currentlistpreset
1条回答
网友
1楼 · 发布于 2024-10-05 21:58:49

根据对问题的评论。我没有解决原始代码失败的原因,但我发现这是可行的:

使用select()的版本,它接受一个QItemSelection对象,并使用QItemSelectRange对象加载该对象,这些对象将ModelIndex包装到我感兴趣的行中。在

相关问题 更多 >