代码之家  ›  专栏  ›  技术社区  ›  John

如何获取Qt QListWidget中列出的选中项目

  •  3
  • John  · 技术社区  · 10 年前

    我已经用一个项目列表填充了一个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)
    

    我想得到所有选中的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。我尝试过getcheckState()和getChecked(),但它们不适用于QListWidget项。

    任何线索都非常感谢。

    谢谢

    厕所。

    1 回复  |  直到 7 年前
        1
  •  11
  •   Denis Rouzaud    3 年前

    你需要检查 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).text())