发出 QTreeWidgetItem 切换复选框的信号

use*_*637 3 python qt pyqt qtreewidget pyside

如何检查复选框是选中还是未选中?(在 QTreeWidget 中)展示了如何获取 qtreewidget 项上复选框的状态。使用该方法,通过树中 itemClicked 的信号,我可以查询是否选中了所选项目。但是,我需要跟踪这个项目,看看它以前是否被检查过。

是否有一种方法可以知道 QTreeWidgetItem(可能与父项处于不同级别)具有切换的复选框,而无需为其创建子类?

请注意,是否有特定原因未将切换方法附加到 QT 中的 QTreeWidgetItem?

ekh*_*oro 5

itemClicked信号不用于处理treewidget复选框一个不错的选择。

一方面,当不点击项目的复选框部分时,它会产生误报;另一方面,当使用键盘切换复选框时,它会给出误报。

我认为可以用现有信号做的最好的事情是使用itemChanged。这将注册使用键盘和鼠标所做的所有复选框状态更改。但是,这不是完美的通用解决方案,因为只要更改任何其他项目数据(例如文本、字体、背景颜色等),它就会产生误报。所以,你需要阻止itemChanged,只要与其他类型的变化作了信号。