2015-03-24 4 views
2

Я заполнил QListWidget со списком элементов и добавил флажок, оставляя все непроверенным.Как получить отмеченные элементы, перечисленные в Qt 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 и нажимает кнопку «Сформировать файл» на графическом интерфейсе.

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)) 

Что находится выше, получает выбранный элемент в списке. Я попытался получить checkState(), getChecked(), но они не существуют для элементов QListWidget.

Любые подсказки очень ценятся.

Thanks,

John.

ответ

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))