我有一个python,它显示一个GUI应用程序,其中包括处理项目的qlistwidget,用户可以通过检查项目来选择这些项目,而不是使用
itemSelectionChanged.connect.
我希望一旦用户检查了所需的项目,系统就会保存它们,以便对所检查的项目运行另一个功能
如下图所示:
这里什么都没有发生
到目前为止,当用户选择选中的项目时,我可以保存它们
现在显示的结果如下:
Checked items: event_type, number_person
self.header_list = QtWidgets.QListWidget(self)
self.header_list.setObjectName("listWidget")
self.header_list.setMaximumWidth(120)
self.header_list.setSelectionMode(QAbstractItemView.MultiSelection)
self.header_list.itemSelectionChanged.connect(self.selectionChanged)
self.horizontallLayout.addWidget(self.header_list)
def selectionChanged(self):
checked = []
for row in range(self.header_list.count()):
item = self.header_list.item(row)
if item.checkState():
checked.append(item)
print("Checked items: ", ", ".join(i.text() for i in checked))
self.checked = [i.text() for i in checked]
那么,什么样的事件侦听器可以替换itemSelectionChanged,以保存只检查项目而不选择项目的结果呢
项目视图的检查状态存储在模型数据中,因此当状态更改时,数据也会相应更改。QListWidget已提供^{} :
这显然意味着每当任何项发生更改时,都会发出信号,而且由于您无论如何都要检查所有项,因此可以保留当前函数,只需将其连接到
itemChanged
而不是itemSelectionChanged
相关问题 更多 >
编程相关推荐