如何测试双击的项目是否在QTreeWidget的底部

问题描述 投票:0回答:1

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

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

双击QTreeWidget中的任何项目时,默认情况下,选择会展开(如果已展开,则折叠)。我创建了一个简单的函数tree_get_details(self,item,column)以打印双击项的项目和列,并将其与itemDoubleClicked连接。到目前为止,效果很好。但是,如何使此功能仅在树的底层(即subXXX行)可用。因此,对于Root,Item1,Item2,Sub11,Sub12,仅是双击事件的默认行为,对于Sub111,Sub121打印项目和列,是默认行为吗?

以某种方式,如果传入的参数“ item”位于最底层,则需要在函数tree_get_details中进行测试。我知道topLevelItem方法,但是找不到对应的底部(如果存在)。我的树具有4级层次结构。

python python-3.x pyqt qtreewidget
1个回答
0
投票

这取决于您对“底部项目”的确切含义。树中“底部项目”的常用名称是"leaf item"。它被定义为没有孩子的物品。您可以使用QTreeWidgetItem::childCount方法进行检查(当且仅当它返回QTreeWidgetItem::childCount时,这是一片叶子)。

如果出于某种原因要在第三子级别中检测项目,则可以递归计算父项目的数量。这稍微复杂一点,可能不是您想要的。

© www.soinside.com 2019 - 2024. All rights reserved.