3

我正在像这样将复选框添加到 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)

所以我需要知道用户检查了列表中的哪些复选框?我不知道如何处理返回的列表项对象以获取复选框状态。我应该改用复选框回调吗?似乎更容易

4

1 回答 1

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()
于 2011-06-08T13:11:10.063 回答