在使用 QTreeWidget
时,如果你想默认展开所有项,可以通过递归遍历树的每一个项并调用其 setExpanded(True)
方法来实现。以下是一个简单的示例代码,展示了如何展开所有的项:
from PyQt5.QtWidgets import QApplication, QTreeWidget, QTreeWidgetItem
def expand_all_items(tree_widget):
for index in range(tree_widget.topLevelItemCount()):
item = tree_widget.topLevelItem(index)
item.setExpanded(True)
expand_child_items(item)
def expand_child_items(item):
for index in range(item.childCount()):
child_item = item.child(index)
child_item.setExpanded(True)
expand_child_items(child_item)
app = QApplication([])
tree_widget = QTreeWidget()
tree_widget.setHeaderLabel("My Tree")
# 创建一些树节点
item1 = QTreeWidgetItem(tree_widget, ["Item 1"])
item2 = QTreeWidgetItem(tree_widget, ["Item 2"])
sub_item1 = QTreeWidgetItem(item1, ["Sub Item 1"])
sub_item2 = QTreeWidgetItem(item1, ["Sub Item 2"])
# 添加到QTreeWidget中
tree_widget.addTopLevelItem(item1)
tree_widget.addTopLevelItem(item2)
# 默认展开所有项
expand_all_items(tree_widget)
tree_widget.show()
app.exec_()
在这个示例中,expand_all_items
函数会遍历 QTreeWidget
中的每个顶级项目,并递归地展开它们及其子项目。这样,你可以确保所有项在窗口显示时都是展开状态。
内容由零声教学AI助手提供,问题来源于学员提问