pyQt: флажок запроса отмечен в QListWidget - PullRequest
2 голосов
/ 08 июня 2011

Я добавляю флажки в QlistWidget, как это

item = QtGui.QListWidgetItem(listWidget)
ch = QtGui.QCheckBox()
listWidget.setItemWidget(item, ch)

как здесь Невозможно изменить состояние проверяемого QListViewItem с помощью пользовательского виджета

но я почему-то не могу вернуть элемент флажка в то время, когда я хочу знать, проверен ли он пользователем. Должно быть, я упускаю что-то очень простое ...

for index in xrange(listWidget.count()): 
    it=listWidget.itemAt(index,0)

Так что мне нужно знать, какие флажки в списке проверил пользователь? Я не могу понять, что делать с возвращенным объектом элемента списка, чтобы получить состояние флажка. Должен ли я использовать обратные вызовы флажок вместо? Кажется проще

1 Ответ

3 голосов
/ 08 июня 2011

Не думаю, что вы хотите использовать itemAt для получения предмета.Из QListWidget документов:

QListWidgetItem QListWidget.itemAt (self, int ax, int ay)

Возвращает указатель на элемент в координатах (x, у).

Вы, вероятно, хотите QListWidget.item().Используя это, вы можете перебирать элементы списка и получать состояние проверки, например:

for index in xrange(listWidget.count()):
    check_box = listWidget.itemWidget(listWidget.item(index))
    state = check_box.checkState()
...