在这个代码的基础上进行加深,如果顶层项被勾选,遍历他的子项,将勾选的子项文字输出成为treewidget的文本
时间: 2024-02-01 07:13:50 浏览: 53
好的,可以使用以下代码实现:
```python
def traverse_tree(tree: QTreeWidget):
top_level_items = [tree.topLevelItem(i) for i in range(tree.topLevelItemCount())]
for item in top_level_items:
if item.checkState(0) == Qt.Checked:
print(item.text(0))
traverse_child_items(item)
def traverse_child_items(parent_item: QTreeWidgetItem):
for i in range(parent_item.childCount()):
child = parent_item.child(i)
if child.checkState(0) == Qt.Checked:
print(" {}".format(child.text(0)))
traverse_child_items(child)
```
`traverse_tree` 函数会遍历整个 `QTreeWidget`,检查顶层项是否被勾选,如果被勾选,则输出其文本,并继续遍历其子项,调用 `traverse_child_items` 函数。
`traverse_child_items` 函数会遍历当前项的所有子项,如果子项被勾选,则输出其文本,并继续遍历其子项,直到遍历完所有子项。
你可以在适当的地方调用 `traverse_tree` 函数来输出勾选的子项文字。
阅读全文