要求就是懒加载,父节点选中后,子节点不能再选择,然后只返回父节点的值,父节点可以多选!重点是懒加载!
7条回答 默认 最新
|__WhoAmI__| 2022-12-27 18:41关注获得1.80元问题酬金 1、在父节点的选择事件中添加代码,用于禁用父节点的子节点。
例如可以在父节点的 treeview.selection_set() 事件中添加代码,用于获取选中的父节点,并将其子节点设置为不可选:def on_parent_select(event): # 获取选中的父节点 parent = treeview.selection()[0] # 获取父节点的子节点 children = treeview.get_children(parent) # 将子节点设置为不可选 for child in children: treeview.item(child, state=tk.DISABLED) # 为父节点的选择事件绑定事件处理函数 treeview.bind('<<TreeviewSelect>>', on_parent_select)2、在父节点的选择事件中添加代码,用于返回父节点的值。
可以使用 treeview.item() 方法获取选中的父节点的相关信息,然后返回父节点的值:def on_parent_select(event): # 获取选中的父节点 parent = treeview.selection()[0] # 获取父节点的值 value = treeview.item(parent)['values'][0] print(value) # 为父节点的选择事件绑定事件处理函数 treeview.bind('<<TreeviewSelect>>', on_parent_select)3、如果希望父节点可以多选,可以在创建 Treeview 组件时使用 selectmode 参数设置选择模式,可以使用以下代码创建 Treeview 组件:
treeview = tk.Treeview(root, selectmode='extended')在这种情况下,用户可以使用鼠标或者键盘按住 Ctrl 键多选父节点。
同时需要在父节点的选择事件中修改代码,使得在多选父节点时只返回最后一个被选中的父节点的值:
def on_parent_select(event): # 获取选中的父节点 parent = treeview.selection()[-1] # 获取父节点的值 value = treeview.item(parent)['values'][0] print(value) # 为父节点的选择事件绑定事件处理函数 treeview.bind('<<TreeviewSelect>>', on_parent_select)解决 无用评论 打赏 举报 编辑记录