如何测试双击的项是否位于 QTreeWidget 的底部

我有一个具有以下形状的QTreeWidget:

Root
- Item1
-- Sub11
--- Sub111
-- Sub12
--- Sub121
...

双击 QTreeWidget 中的任何项目时,默认情况下,所选内容都会展开(如果已展开,则为折叠)。我创建了一个简单的函数tree_get_details(self,item,column)来打印双击项目的项目和列,并将其与itemDoubleClicked连接起来。到目前为止,这工作得很好。但是,我如何使此函数仅在树的底层可用(即对于子XXX行)。因此,对于根,项目1,项目2,子11,Sub12只是双击事件的默认行为,对于子111,Sub121打印项目和列?

不知何故,我需要在我的函数中测试tree_get_details参数中传递的“item”是否在底层。我知道topLevelItem方法,但找不到相应的底部方法(如果它存在...)。我的树有 4 级层次结构。


慕盖茨4494581
浏览 95回答 1
1回答

缥缈止盈

这取决于你对“底部项目”的确切含义。树中“底部项目”的通常名称是“叶项目”。它被定义为没有子项的项目。这是你可以用QTreeWidgetItem::childCount方法检查的东西(当且仅当它返回时,它才是一片叶子)。0如果出于任何原因,您希望检测第三个子级别中的项目,则可以递归计算父项目的数量。这稍微复杂一些,可能不是你想要的。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python