我有一个具有以下形状的QTreeWidget:
Root
- Item1
-- Sub11
--- Sub111
-- Sub12
--- Sub121
...
双击QTreeWidget中的任何项目时,默认情况下选择会展开(如果已展开,则折叠)。我创建了一个简单的函数tree_get_details(self,item,column)以打印双击项的项目和列,并将其与itemDoubleClicked连接。到目前为止,效果很好。但是,如何使此功能仅在树的底层(即subXXX行)可用。因此,对于Root,Item1,Item2,Sub11,Sub12,仅是双击事件的默认行为,对于Sub111,Sub121打印项目和列?
我需要以某种方式在函数tree_get_details中进行测试,如果传入的参数“ item”位于最底层。我知道topLevelItem方法,但找不到相应的底部(如果存在...)。我的树有4级层次结构。
问题来源:stackoverflow
这取决于您对“底部项目”的确切含义。树中“底部项目”的通常名称是“叶项目”。它被定义为没有孩子的物品。您可以使用QTreeWidgetItem :: childCount
方法来检查(如果且仅当它返回0
时,它才是一片叶子)。
如果出于某种原因要在第三子级中检测项目,则可以递归计算父项目的数量。这稍微复杂一点,可能不是您想要的。
回答来源:stackoverflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。