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

Tkinter treeview(0,0)位置存在多余空白 移除标题栏图标消失问题

问题根因

你遇到的问题核心来自两个错误配置:

  1. 额外定义了不需要的自定义列,还给自定义列配置了标题,额外占用了布局空间产生空白
  2. 对ttk.Treeview的show参数逻辑不熟悉:传入空值会同时隐藏展示图标/树结构的默认树列和标题栏,自然图标会消失;传入'tree'仅展示树列、隐藏标题栏,才是符合你需求的配置。

解决方案

你不需要自定义列,直接用Treeview自带的默认#0树列承载图标即可,修改后的代码如下:

# 实现部分修改,移除多余的自定义列定义
icon_tree = ttk.Treeview(gridroot, selectmode='none', height=14, show='tree')
# 直接调整默认#0树列的宽度、对齐属性匹配图标尺寸
icon_tree.column('#0', anchor=CENTER, width=20)
# 不需要再配置自定义列的heading,show='tree'已经隐藏了标题栏

# 网格布局部分保持原有配置即可
Lb.grid(column=1, row=2)
Lb.config(font=lb_font, selectmode=MULTIPLE, height=len(process_list))
Lb2.grid(column=2, row=2)
Lb2.config(font=lb_font, selectmode=MULTIPLE, height=len(process_list))
icon_tree.grid(column=0, row=2)
get_time_btn.grid(column=1, row=3)
rm_from_list_btn.grid(column=2, row=3)
refresh_list_btn.grid(column=1, row=4)
add_monitor_btn.grid(column=2, row=4)

# 图标添加逻辑不需要修改,保持原有代码即可
i = get_icon(exe)
im = ImageTk.PhotoImage(i)
icons.append(im)
icon_tree.insert(parent='', index='end', image=icons[didx])

修改后Treeview仅会展示树列中的图标,不会再出现标题栏空白,图标位置也可以和旁边的列表框内容对齐。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 17:06:03