如何获取 Qt QListWidget 中列出的选中项 [英] How to get the checked items listed in a Qt QListWidget

查看:187
本文介绍了如何获取 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆