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

Tkinter Treeview更新记录时内容显示错位问题求助

Tkinter Treeview更新数据错位问题解决

问题根源

更新记录时,update_record函数中传入values的字段顺序和初始化插入Treeview时的顺序完全不匹配,直接导致数据错位显示到错误表头下。

对比插入与更新的字段顺序:

  • 初始化插入时的values顺序(对应Treeview存储的字段索引):
    (record[0], record[3], record[1], record[9], record[10], record[11], supervisor_value, create_value, void_value, active_value, reconcile_value, drawer_value)
    # 索引对应:0:User,1:Full Name,2:Location,3:Drawer1,4:Drawer2,5:Drawer3,6:Supervisor,7:create_value,8:void_value,9:active_value,10:reconcile_value,11:drawer_value
    
  • 原更新代码的values顺序完全混乱,和上述映射无对应关系,必然导致错位。

修正后的update_record函数

严格按照插入时的字段顺序组织更新参数,同时修正原代码中缩进错误的清空逻辑:

def update_record():
    # 获取选中的记录
    selected = my_tree.focus()
    # 按插入时的字段顺序更新Treeview
    my_tree.item(selected, text="", values=(
        casr_entry.get(),  # 对应索引0:User
        fn_entry.get(),    # 对应索引1:Full Name
        loc_entry.get(),   # 对应索引2:Location
        draw1_entry.get(), # 对应索引3:Drawer 1
        draw2_entry.get(), # 对应索引4:Drawer 2
        draw3_entry.get(), # 对应索引5:Drawer 3
        superv_check.get(),# 对应索引6:Supervisor
        create_check.get(),# 对应索引7:create_value
        void_check.get(),  # 对应索引8:void_value
        active_check.get(),# 对应索引9:active_value
        recon_check.get(), # 对应索引10:reconcile_value
        drwer_check.get()  # 对应索引11:drawer_value
    ))
    
    # 清空输入框(修正缩进,移入函数内部)
    loc_entry.delete(0, END)
    active_check.delete(0, END)
    casr_entry.delete(0, END)
    fn_entry.delete(0, END)
    create_check.delete(0, END)
    superv_check.delete(0, END)
    void_check.delete(0, END)
    recon_check.delete(0, END)
    drwer_check.delete(0, END)
    draw1_entry.delete(0, END)
    draw2_entry.delete(0, END)
    draw3_entry.delete(0, END)

额外注意事项

  1. 原代码中清空输入框的代码缩进错误,属于函数外部逻辑,会导致未点击更新就执行清空,现已修正到函数内部。
  2. 若后续需要重新查询数据库刷新Treeview,需先调用my_tree.delete(*my_tree.get_children())清空现有数据,再重新插入,避免重复。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 09:13:23