pyQt:查询 QListWidget 中复选框的选中状态

3
我正在像这样向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
我认为您不想使用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()

如果listwidget是qlistwidget,那么itemWidget是什么? - user-2147482637

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接