Tkinter Treeview索引列过宽且无法调整,求解决方案
解决Tkinter Treeview索引列宽度问题
一、调整索引列的大小
Treeview的默认索引列(第一列)标识符为#0,你之前的代码仅配置了自定义列,未对该默认列做设置。只需添加对#0列的属性配置,就能调整它的宽度并允许拖动调整:
修改后的代码片段:
cols = list(rawdata.columns) tree.grid_remove() tree = ttk.Treeview(frame_datapreview, height=40) tree.grid(row=0, column=0) tree["columns"] = cols # 配置默认索引列(#0) tree.column("#0", anchor="w", width=80, stretch=YES) # 设置初始宽度,允许拖动调整 tree.heading("#0", text="索引", anchor='w') # 可选:给索引列添加表头文字 for i in cols: tree.column(i, anchor="w", stretch=NO, width=50) tree.heading(i, text=i, anchor='w') for index, row in rawdata.iterrows(): tree.insert("", index, text=index, values=list(row))
设置完成后,索引列即可像其他列一样拖动边缘调整宽度。
二、彻底移除索引列
如果不需要显示索引列,直接将#0列的宽度设为0并禁用拉伸即可:
修改后的代码片段:
cols = list(rawdata.columns) tree.grid_remove() tree = ttk.Treeview(frame_datapreview, height=40) tree.grid(row=0, column=0) tree["columns"] = cols # 隐藏默认索引列 tree.column("#0", width=0, stretch=NO) for i in cols: tree.column(i, anchor="w", stretch=NO, width=50) tree.heading(i, text=i, anchor='w') for index, row in rawdata.iterrows(): tree.insert("", index, text="", values=list(row)) # text留空,避免内容溢出
这样设置后,索引列会完全隐藏,不再占用界面空间。
内容的提问来源于stack exchange,提问作者cocobolodesk
相关产品推荐
相关产品推荐

