我们知道在数据结构上来说,任何树都是有根节点的,但我们在QTreeWidget对象中并没有看到界面上展示一个根节点,在QTreeWidget对象和数据项构建时也没有指定这样的根节点,但实际上这个根节点还是存在的,只是不可见,且该节点是树型部件创建之后就自动创建,无论是否存在顶层项。
QTreeWidget提供了访问该隐形根节点的方法,调用语法如下:
QTreeWidgetItem invisibleRootItem()
这个方法其实用途不大,主要是可以用于递归访问树的所有节点,递归不是从topLevelItem开始,而是从根节点开始,所有节点的类型都是QTreeWidgetItem ,可以用QTreeWidgetItem 的child方法逐层递归访问。
代码示例:
在下图的树型部件中:
使用隐形根节点输出顶层项数据的示例代码:
root = self.treeWidget.invisibleRootItem()
count = root.childCount()
for i in range(count):print(root.child(i).text(0))
输出数据如下:
c:
d:
e: