pyQt:在QListWidget中选中查询复选框

时间:2011-06-08 10:04:44

标签: pyqt qlistwidget

我正在将Checkbox添加到像这样的QlistWidget

item = QtGui.QListWidgetItem(listWidget)
ch = QtGui.QCheckBox()
listWidget.setItemWidget(item, ch)
像这里一样 Can't change state of checkable QListViewItem with custom widget

但是当我想知道用户是否检查过它时,我无法以某种方式取回复选框项目。我必须遗漏一些非常基本的东西......

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

所以我需要知道用户选中的列表中的哪些复选框? 我无法弄清楚如何处理返回的列表项对象以获取复选框状态。 我应该使用复选框回调吗?似乎更容易

1 个答案:

答案 0 :(得分:3)

我认为您不想使用itemAt来获取该项目。来自QListWidget文档:

  

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

     

返回指向坐标(x,y)处项目的指针。

你可能想要QListWidget.item()。使用它可以循环遍历列表项并获得像这样的检查状态

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