我试图在
QListWidget
中找到选中的项目,但是,我不确定如何识别正在选中的项目,因为我没有为每个单独的复选框使用名称。基本上,我有多个未知字符串,它们被制成复选框并放入QListWidget
中。然后我试图找出这些复选框中的哪一个已被选中。
这就是我目前制作复选框的方式(但如果更好的话我可以使用另一个小部件)
thing2 = ['asdsa', 'dasdas', 'sdasdas', 'asdsa', 'sdasdad']
for item in thing2:
vbox.addWidget(QCheckBox(item))
但是,我无法判断正在选中哪个复选框(因为我想对选中的项目执行操作)
到目前为止,我已经尝试使用 QListWidget 来更好地组织它,我原本以为我可以像普通的 python 列表一样引用每个项目,但是我仍然无法检查勾选了哪个复选框。
https://github.com/yjg30737/pyqt-checkbox-file-list-widget
这基本上就是我想要做的,选择一些复选框,并有一个允许我删除项目的按钮,但是,我无法使其与普通文本一起使用。 (我检查了安装的文件,我认为它只适用于文件)
我还尝试过使用模型视图控制器代码,这是网上向我推荐的,因为据说将其转移到小部件上要容易得多,但我发现它非常令人困惑(并且没有成功)所以如果可能的话我宁愿不使用它。
我可以使用任何方法来让我的程序识别状态更改,从而允许我修改更改的项目吗?如果它完全改变了代码我就可以了。
将复选框初始化为列表。
self.rows = []
checkboxes = []
for i in range(len(self.rows)):
checkboxes.append(QtWidgets.QCheckBox())
self.listWidget.addItem(checkboxes[i])
单击时:
for i in range(0, self.listWidget.count()):
if(self.listWidget.item(i).isChecked()):
self.selected.append(i)
这会将所有选定的 ID 返回到
rows
。
我基于我的一个项目中的两列
QTableWidget
构建了这段代码,它们基本上做了同样的事情。如果您可以使用 QTableWidget
代替,我可以给您生产代码。