我有一个QListWidget这里我想补充了一堆物品的使用自定义窗口小部件:无法更改可检查QListViewItem的状态,自定义部件
listWidget = QListWidget()
item = QListWidgetItem()
item.setFlags(item.flags() | Qt.ItemIsUserCheckable)
item.setCheckState(Qt.Unchecked)
listWidget.addItem(item)
widget = MyLabelAndPushButton()
item.setSizeHint(widget.sizeHint())
listWidget.setItemWidget(item, widget)
,顾名思义MyLabelAndPushButton只是包含一个widget QLabel和一个QPushButton。问题是我无法使用出现在小部件旁边的listwidget中的复选框。它看起来完全正常,但是当我点击它时没有任何反应。如果我使用setItemWidget删除该行,它可以正常工作。我究竟做错了什么?
编辑:在bugreports.qt.io/browse/QTBUG-16386
报告的bug,但得到的回答是“API是不适合你打算做什么”和“在情况下,如果你想显示自定义窗口小部件,使用而QListView和子QItemDelegate。 “所以显然这不是一个错误,只是API无法处理的东西。
这将作为最后的手段,但我宁愿尽量避免使用这样的解决方法。 – pafcu 2010-12-28 08:25:25