如何获取Qt QListWidget中列出的已检查项目
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何获取Qt QListWidget中列出的已检查项目相关的知识,希望对你有一定的参考价值。
我已经用一个项目列表填充了一个QListWidget,并添加了一个复选框,使所有内容都未选中。
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上的“生成文件”按钮。
self.pushButtonGenerateFile.clicked.connect(self.generate_file)
我想获得所有已检查的QListItem的列表。
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。我试过getState(),getChecked(),但QListWidget项不存在。
任何线索都非常感谢。
谢谢,
约翰。
答案
你需要检查checkState
是否真的是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中列出的已检查项目的主要内容,如果未能解决你的问题,请参考以下文章
如何在pyqt5 QlistWidget中选择多个项目并打印它们[重复]
Qt C++ QListView 或 QListWidget 中的字体列表并将它们表示为复选框
Qt/C++:检查 QListWidgetItem 时的信号?