我正在将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)
所以我需要知道用户选中的列表中的哪些复选框? 我无法弄清楚如何处理返回的列表项对象以获取复选框状态。 我应该使用复选框回调吗?似乎更容易
答案 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()