tkinterのpack

〇1要素のみ
・side="left", fill="none", expand=False

 

・side="left", fill="both", expand=False

fillして縦のみ染まるということは、縦のみ元々expandされている(領域としては確保されているが、fillしていない)状態だったということ。

・side="left", fill="none", expand=True

元々縦のみexpandされていたものが、横もexpandされる。
なので、side="left"としても、中央に表示される。

・side="left", fill="both", expand=True

縦横にexpandしてfillするので、全領域がcanvasになる。
TreeViewでも同様の結果になった。

 

〇2要素

root.geometry("1350x900")
canvas = tk.Canvas(root, bg="red", width=900, height=900)
canvas.pack(side='left')
canvas.create_image(450, 450, image=image)
tree = ttk.Treeview(root)

・tree.pack(side='right')

縦のみexpandされているので、縦は中央に配置される。
横は空いてるので、side='right'によって右詰めされる。

・tree.pack(side='right', fill="both")

縦のみexpandされているので、そこがfillされる。

・tree.pack(side='right', expand=True)

横にもexpandされる。fillしてないので、上下左右に隙間ができて中央配置される。

・tree.pack(side='right', expand=True, fill="both")

横にもexpandされ、上下左右にfillされる。

〇3要素
leftで左側を占有(canvas
その後topで、空いている右領域の上側を占有(inspector)
最後にbottomで、右下領域を占有(treeview)