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

如何通过代码调整tkinter ttk Treeview展开列的宽度?

调整Tkinter Treeview左侧展开/收起列的宽度

在使用Tkinter的ttk Treeview创建带子项的树形结构时,最左侧会自动生成一列,用于显示展开/收起父项的控件。这一列可手动拖拽调整宽度,但很多人不知道如何通过代码直接设置它的宽度。

问题示例代码

# Standard Library
import tkinter as tk
from tkinter import ttk


root = tk.Tk()

# creating treeview
columns = ('Category', 'Parameter', 'Value', 'Unit', 'Status')
tree = ttk.Treeview(root, columns=columns)
tree.pack(side='left')

tree.column('Category', minwidth=0, width=110, stretch=True)
tree.column('Parameter', minwidth=0, width=150, stretch=True)
tree.column('Value', minwidth=0, width=110, stretch=True)
tree.column('Unit', minwidth=0, width=110, stretch=True)
tree.column('Status', minwidth=0, width=110, stretch=True)

tree.heading('Category', text='Category')
tree.heading('Parameter', text='Parameter')
tree.heading('Value', text='Value')
tree.heading('Unit', text='Unit')
tree.heading('Status', text='Status')

info = ("one", "two", "three", "four", "five")
tree.insert("", tk.END, iid=1, values=info, open=False)
tree.insert("", tk.END, iid=2, values=info, open=False)
tree.move(2, 1, 0)

root.title("Test File Editor")
root.geometry("850x700")
root.mainloop()

解决方案

Treeview中这一列的列标识符是空字符串'',你可以直接用tree.column()方法对它进行设置,操作逻辑和自定义列一致。

比如要把这一列宽度设为20,同时禁止拉伸、设置最小宽度为0,添加以下代码即可:

tree.column('', width=20, minwidth=0, stretch=False)

修改后的完整代码

# Standard Library
import tkinter as tk
from tkinter import ttk


root = tk.Tk()

# creating treeview
columns = ('Category', 'Parameter', 'Value', 'Unit', 'Status')
tree = ttk.Treeview(root, columns=columns)
tree.pack(side='left')

# 设置左侧展开列的宽度
tree.column('', width=20, minwidth=0, stretch=False)

tree.column('Category', minwidth=0, width=110, stretch=True)
tree.column('Parameter', minwidth=0, width=150, stretch=True)
tree.column('Value', minwidth=0, width=110, stretch=True)
tree.column('Unit', minwidth=0, width=110, stretch=True)
tree.column('Status', minwidth=0, width=110, stretch=True)

tree.heading('Category', text='Category')
tree.heading('Parameter', text='Parameter')
tree.heading('Value', text='Value')
tree.heading('Unit', text='Unit')
tree.heading('Status', text='Status')

info = ("one", "two", "three", "four", "five")
tree.insert("", tk.END, iid=1, values=info, open=False)
tree.insert("", tk.END, iid=2, values=info, open=False)
tree.move(2, 1, 0)

root.title("Test File Editor")
root.geometry("850x700")
root.mainloop()

运行修改后的代码,左侧的展开列会直接显示为你设置的宽度,无需手动拖拽调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 17:20:30