我在tkinter中有一个Treeview(在Linux上是python3.6,但在windows上也是如此),我用它来模拟一种电子表格布局。我的问题是,如果我运行下面的示例代码并调整大小,比如“Column 1”,那么随着“Column 1”的增大,“Column 2”会变小。但是,如果我向右拖出final列,滚动条就会展开,现在我可以调整列1的大小而不改变列2的大小(相反,整个树视图都会展开)。如果再调整列1的大小,直到所有列都适合视图为止,那么行为似乎会恢复到原来的状态。在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()