我用treewidget创建一棵树,建item时用setCheckState(0, Qt.Unchecked)显示复选框。
并创建slot,点击item时若复选框未选中,则选之,选中则取消:
@pyqtSlot(QTreeWidgetItem, int)
def on_treeWidget_itemClicked(self, item, column):
if item.checkState(column) == Qt.Checked:
item.setCheckState(column, Qt.Unchecked)
else:
item.setCheckState(column, Qt.Checked)
但如此一来,我点击复选框无效,复选框状态不会改变,只有点击item的文字,复选框才会有反应。
但我测试了一下,不论点复选框还是点文字,都会触发on_treeWidget_itemClicked事件。
且如果将on_treeWidget_itemClicked函数改为啥都不做(pass),点击复选框是有效的。
请问有没有碰到过这种问题。
我是想无论点击复选框或者文字,复选框的状态都能改变,谢谢。