我有一个Treeview
in tkinter
(Linux 上的 Python 3.6,但 Windows 上也会发生同样的情况)我用它来模拟一种电子表格布局。我的问题是,如果我运行下面的示例代码,并调整“第 1 列”的大小,那么随着“第 1 列”变大,“第 2 列”变小。但是,如果我拖出final列向右移动,滚动条展开,现在我可以调整第 1 列的大小,而无需更改第 2 列的大小(而是整个树视图展开)。如果您随后再次调整第 1 列的大小,直到所有列都适合视图,则行为似乎会恢复为原始状态。
是什么导致了这种行为的改变?两者,我怎样才能阻止它,以及如何确保它是默认的?
最小工作示例:
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
列的属性。如果您设置所有列的拉伸和最小宽度属性。
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)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)