我有一个具有以下形状的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 级层次结构。
1 回答
缥缈止盈
TA贡献2041条经验 获得超4个赞
这取决于你对“底部项目”的确切含义。树中“底部项目”的通常名称是“叶项目”。它被定义为没有子项的项目。这是你可以用QTreeWidgetItem::childCount
方法检查的东西(当且仅当它返回时,它才是一片叶子)。0
如果出于任何原因,您希望检测第三个子级别中的项目,则可以递归计算父项目的数量。这稍微复杂一些,可能不是你想要的。
添加回答
举报
0/150
提交
取消