簡體   English   中英

如何獲取 Qt QListWidget 中列出的已檢查項目

[英]How to get the checked items listed in a 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)

我想獲取所有已檢查 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 項不存在。

任何線索都非常感謝。

謝謝,

約翰。

您需要檢查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())

上面的答案很接近,錯過了.text()<\/strong> 。 我不值得評論,所以更正如下:

checked_items.append( self.listWidgetLabels_fields.item(index).text())

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM