0
我有一個Treeview
在tkinter
(Linux上的Python 3.6,但同樣發生在Windows上),我用它來模擬一種電子表格佈局。我的問題是,如果我在下面運行示例代碼,並調整大小說「列1」,那麼隨着「列1」變大,「列2」變小。但是,如果我將最後的列拖出到右側,滾動條將展開,現在我可以調整第1列的大小而不更改第2列的大小(而是整個樹視圖展開)。如果您再調整第1列的大小,直到所有列都適合視圖,則行爲似乎會恢復到原始狀態。Python tkinter treeview列大小
是什麼導致了這種行爲改變?兩者,我怎樣才能阻止它,以及如何確保它是默認的?
最小工作例如:
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()
謝謝!所以'stretch = False'對我來說效果很好:它迫使widget進入我在OP中討論的「第二模式」。官方文檔:https://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeview仍然讓它略微不清楚,爲什麼,默認情況下,小部件有時會調整列的大小。但這就是生活...... –