簡體   English   中英

Python Tkinter Treeview列大小

[英]Python tkinter treeview column sizes

我在tkinter有一個Treeview (Linux上為Python 3.6,但在Windows上也是如此),我正在使用它來模擬某種電子表格布局。 我的問題是,如果我在下面運行示例代碼,並調整大小,請說“第1列”,那么隨着“第1列”變大,“第2列”變小。 但是,如果將最后一列向右拖出,滾動條會展開,現在我可以在不更改第2列大小的情況下調整第1列的大小(而是整個樹形視圖都會擴展)。 如果然后再次調整第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屬性。 如果使所有列的stretch和minwidth屬性都有效。

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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM