0
(私はLinux上のPython 3.6でも同じことが起こります)は、一種のスプレッドシートレイアウトをエミュレートするために使用しています。私の問題は、以下のサンプルコードを実行し、 "Column 1"と "Column 1"のサイズが大きくなると "Column 2"が小さくなるということです。ただし、の最後の列を右にドラッグすると、スクロールバーが開き、列2のサイズを変更することなく列1のサイズを変更できます(ツリービュー全体が拡大されます)。たとえば、列1を再度サイズ変更すると、すべての列がビューに収まるまで、その動作は元の状態に戻ります。Pythonのtkinterのツリービューのカラムサイズ
この動作の原因は何ですか?どちらも、どのように停止できますか?どのようにしてデフォルトにすることができますか?
最小限の作業例:
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'は私のためにうまくいきます。それは、ウィジェットをOPで議論した「2ndモード」に強制します。公式のドキュメント:https://docs.python.org/3/library/tkinter.ttk.html#tkinter.ttk.Treeviewデフォルトでウィジェットが列のサイズを変更することがあるのはなぜか分かりません。しかし、そのような人生は... –