如何获取 Qt QListWidget 中列出的选中项 [英] How to get the checked items listed in a Qt QListWidget
问题描述
我已经用项目列表填充了一个 QListWidget,并添加了一个复选框,让所有内容都未选中.
I've populated a QListWidget with a list of items and added a check box leaving everything unchecked.
for td in root.iter('testdata'):
test_data = td.get('ins')
item = QtGui.QListWidgetItem(test_data, self.listWidgetLabels)
item.setFlags(item.flags() | QtCore.Qt.ItemIsUserCheckable)
item.setCheckState(QtCore.Qt.Unchecked)
然后用户单击 QListItem 中的一些项目并单击 gui 上的生成文件"按钮.
The user then clicks a few of the items in the QListItem and clicks a 'Generate File' button on the gui.
self.pushButtonGenerateFile.clicked.connect(self.generate_file)
我想获得所有选中的 QListItems 的列表.
I want to get a list of all the checked QListItems.
def generate_driver(self):
test = self.listWidgetLabels.selectedItems()
items = []
checked_items = []
for index in range(self.listWidgetLabels.count()):
items.append(self.listWidgetLabels.item(index))
for x in self.listWidgetLabels.selectedItems():
checked.append(x.text())
for i in checked:
print("Checked Items: {0}".format(i))
上面的内容获取列表中的 selectedItem.我试过 get checkState()、getChecked(),但它们不存在于 QListWidget 项目中.
What is above gets the selectedItem in the list. I've tried get checkState(), getChecked(), but they don't exist for QListWidget items.
非常感谢任何线索.
谢谢,
约翰.
推荐答案
你需要检查checkState
是否真的是Qt.Checked
:
You need to check if checkState
is actually Qt.Checked
:
for index in range(self.listWidgetLabels.count()):
if self.listWidgetLabels.item(index).checkState() == Qt.Checked:
checked_items.append(self.listWidgetLabels.item(index))
这篇关于如何获取 Qt QListWidget 中列出的选中项的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!