gpt4 book ai didi

Python tkinter TreeView 列大小

转载 作者:行者123 更新时间:2023-12-04 02:04:50 25 4
gpt4 key购买 nike

我有一个 Treeviewtkinter (Linux 上的 Python 3.6,但在 Windows 上也是如此)我用来模拟一种电子表格布局。我的问题是,如果我运行下面的示例代码并调整大小说“第 1 列”,那么随着“第 1 列”变大,“第 2 列”变小。但是,如果我将最后一列拖到右侧,滚动条会展开,现在我可以调整第 1 列的大小而不改变第 2 列的大小(而不是整个 TreeView 展开)。如果您然后再次调整第 1 列的大小,直到所有列都适合 View ,则行为似乎恢复到原始状态。

What causes this change of behaviour? Both, how can I stop it, and how can I ensure it's the default?



最小的工作示例:
import tkinter as tk
import tkinter.ttk as ttk

root = tk.Tk()
root.columnconfigure(0, weight=1)
root.rowconfigure(0, weight=1)

tree = ttk.Treeview(root)
tree["show"] = "headings"
tree["columns"] = list(range(3))
for i in range(3):
tree.heading(i, text="Column {}".format(i))

for i in range(5):
tree.insert('', "end", i)

tree.grid(row=0, column=0, sticky=(tk.N, tk.S, tk.E, tk.W))
xs = ttk.Scrollbar(root, orient=tk.HORIZONTAL, command=tree.xview)
tree["xscrollcommand"] = xs.set
xs.grid(row=1, column=0, sticky=(tk.E, tk.W))

root.mainloop()

最佳答案

您在 Treeview 中拥有的最佳控制权正在使用 stretch列的属性。如果您使所有列的拉伸(stretch)和最小宽度属性。

for i in range(3):
tree.column('#' + str(i), minwidth=300, stretch=0)
tree.heading(i, text="Column {}".format(i))
tree.column('#0', stretch=0)

关于Python tkinter TreeView 列大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44331033/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com