You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Tkinter treeview双击插入子节点始终显示在最后父节点下方问题求解

Tkinter Treeview子节点挂靠位置错误修复方案

问题原因

你代码的核心问题是双击回调中错误使用了全局累加的count变量作为父节点ID:
你在插入父节点的for循环中持续修改全局count的值,所有父节点插入完成后,count最终等于最后一个父节点的iid。后续你双击任意父节点插入子节点时,直接把这个count作为父节点参数传入,因此所有子节点都会被挂靠到最后一个父节点下,和插入索引的设置无关。

修复方法

  1. 首先在双击回调函数中获取当前实际选中的父节点iid,不要使用全局count
    在Double_click函数开头添加如下代码获取选中项:
# 单选场景下直接取第一个选中项的iid
selected_parent = trv.selection()[0]

如果要兼容未选中、多选的异常场景,可增加非空判断:

selected_list = trv.selection()
if not selected_list:
    return
selected_parent = selected_list[0]
  1. 修改子节点插入代码,把parent参数替换为获取到的选中父节点iid
    原有错误代码:
trv.insert(count, index='end', values=[seuid1, series_desc])

修改后代码:

trv.insert(parent=selected_parent, index='end', values=[seuid1, series_desc])

问题复现示例截图

问题示例截图

内容的提问来源于stack exchange,提问作者Sun B

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 21:24:04