use*_*637 3 python qt pyqt qtreewidget pyside
如何检查复选框是选中还是未选中?(在 QTreeWidget 中)展示了如何获取 qtreewidget 项上复选框的状态。使用该方法,通过树中 itemClicked 的信号,我可以查询是否选中了所选项目。但是,我需要跟踪这个项目,看看它以前是否被检查过。
是否有一种方法可以知道 QTreeWidgetItem(可能与父项处于不同级别)具有切换的复选框,而无需为其创建子类?
请注意,是否有特定原因未将切换方法附加到 QT 中的 QTreeWidgetItem?
该itemClicked信号不用于处理treewidget复选框一个不错的选择。
一方面,当不点击项目的复选框部分时,它会产生误报;另一方面,当使用键盘切换复选框时,它会给出误报。
我认为可以用现有信号做的最好的事情是使用itemChanged。这将注册使用键盘和鼠标所做的所有复选框状态更改。但是,这不是完美的通用解决方案,因为只要更改任何其他项目数据(例如文本、字体、背景颜色等),它就会产生误报。所以,你需要阻止的itemChanged,只要与其他类型的变化作了信号。