一、side選項
side選項是指定組件在父容器中停靠的位置。可選值為”left”、”right”、”top”、”bottom”或”center”。使用該選項可以讓組件向具體的一個方向布置,從而實現靈活的布局效果。
import tkinter as tk
root = tk.Tk()
label1 = tk.Label(root, text="label1", bg="red", width=10, height=5)
label2 = tk.Label(root, text="label2", bg="blue", width=10, height=5)
label3 = tk.Label(root, text="label3", bg="green", width=10, height=5)
label1.pack(side="left")
label2.pack(side="right")
label3.pack(side="bottom")
root.mainloop()
上述代碼中,我們在父容器中放置了三個Label組件。分別使用了”left”、”right”和”bottom”選項進行了布局,該布局可實現水平方向居左、水平方向居右和垂直方向居底的效果。
二、fill選項
fill選項是指定組件在父容器中填充的方式。可選值為”none”、”x”、”y”或”both”。使用該選項可以讓組件填滿父容器的指定方向,讓布局更加靈活。
import tkinter as tk
root = tk.Tk()
label1 = tk.Label(root, text="label1", bg="red", width=10, height=5)
label2 = tk.Label(root, text="label2", bg="blue", width=10, height=5)
label3 = tk.Label(root, text="label3", bg="green", width=10, height=5)
label1.pack(fill="x")
label2.pack(fill="y")
label3.pack(fill="both")
root.mainloop()
上述代碼中,我們在父容器中放置了三個Label組件。分別使用了”fill”選項,讓組件填充了父容器的不同方向。這樣就可以實現組件佔滿水平方向、垂直方向和兩個方向的效果。
三、expand選項
expand選項是指定組件是否隨着父容器的大小變化而自動擴展。使用該選項可以讓組件隨着窗口的大小自動調整,從而實現自適應的布局效果。
import tkinter as tk
root = tk.Tk()
label1 = tk.Label(root, text="label1", bg="red", width=10, height=5)
label2 = tk.Label(root, text="label2", bg="blue", width=10, height=5)
label3 = tk.Label(root, text="label3", bg="green", width=10, height=5)
label1.pack(fill="x", expand=True)
label2.pack(fill="y", expand=True)
label3.pack(fill="both", expand=True)
root.mainloop()
上述代碼中,我們在父容器中放置了三個Label組件。使用了”expand”選項,讓組件在水平方向、垂直方向和兩個方向都隨着窗口的大小自動擴展。
四、padx/pady選項
padx和pady選項是指定組件與父容器邊界的邊距大小。使用該選項可以讓組件與父容器保持一定的距離,讓布局更加美觀。
import tkinter as tk
root = tk.Tk()
label1 = tk.Label(root, text="label1", bg="red", width=10, height=5)
label2 = tk.Label(root, text="label2", bg="blue", width=10, height=5)
label3 = tk.Label(root, text="label3", bg="green", width=10, height=5)
label1.pack(padx=10, pady=10)
label2.pack(padx=20, pady=20)
label3.pack(padx=30, pady=30)
root.mainloop()
上述代碼中,我們在父容器中放置了三個Label組件。使用了”padx”和”pady”選項,讓組件與父容器的邊界保持了不同大小的距離。
五、ipadx/ipady選項
ipadx和ipady選項是指定組件內部的邊距大小。使用該選項可以讓組件與內置元素之間保持一定的距離,讓布局更加合理。
import tkinter as tk
root = tk.Tk()
label1 = tk.Label(root, text="label1", bg="red", width=15, height=10, padx=10, pady=10, ipadx=5, ipady=5)
label2 = tk.Label(root, text="label2", bg="blue", width=15, height=10, padx=10, pady=10, ipadx=10, ipady=10)
label3 = tk.Label(root, text="label3", bg="green", width=15, height=10, padx=10, pady=10, ipadx=15, ipady=15)
label1.pack(side="left")
label2.pack(side="right")
label3.pack(side="bottom")
root.mainloop()
上述代碼中,我們在父容器中放置了三個Label組件。使用了”ipadx”和”ipady”選項,讓組件內部的元素與組件之間保持不同大小的距離。
六、anchor選項
anchor選項是指定組件在父容器中的對齊方式。可選值為”nw”、”n”、”ne”、”w”、”center”、”e”、”sw”、”s”或”se”。使用該選項可以讓組件在父容器中保持指定的對齊方式,讓布局更加靈活。
import tkinter as tk
root = tk.Tk()
label1 = tk.Label(root, text="label1", bg="red", width=10, height=5)
label2 = tk.Label(root, text="label2", bg="blue", width=10, height=5)
label3 = tk.Label(root, text="label3", bg="green", width=10, height=5)
label1.pack(anchor="nw")
label2.pack(anchor="center")
label3.pack(anchor="se")
root.mainloop()
上述代碼中,我們在父容器中放置了三個Label組件。使用了”anchor”選項,讓組件在父容器的不同方向上保持了不同的對齊方式。
代碼示例
import tkinter as tk
root = tk.Tk()
# side選項示例
label1 = tk.Label(root, text="label1", bg="red", width=10, height=5)
label2 = tk.Label(root, text="label2", bg="blue", width=10, height=5)
label3 = tk.Label(root, text="label3", bg="green", width=10, height=5)
label1.pack(side="left")
label2.pack(side="right")
label3.pack(side="bottom")
# fill選項示例
label4 = tk.Label(root, text="label4", bg="yellow", width=10, height=5)
label5 = tk.Label(root, text="label5", bg="purple", width=10, height=5)
label4.pack(fill="x")
label5.pack(fill="y")
# expand選項示例
label6 = tk.Label(root, text="label6", bg="black", fg="white", width=10, height=5)
label6.pack(fill="both", expand=True)
# padx/pady選項示例
label7 = tk.Label(root, text="label7", bg="gray", width=10, height=5)
label7.pack(padx=30, pady=30)
# ipadx/ipady選項示例
label8 = tk.Label(root, text="label8", bg="white", width=15, height=10, padx=10, pady=10, ipadx=5, ipady=5)
label9 = tk.Label(root, text="label9", bg="white", width=15, height=10, padx=10, pady=10, ipadx=10, ipady=10)
label10 = tk.Label(root, text="label10", bg="white", width=15, height=10, padx=10, pady=10, ipadx=15, ipady=15)
label8.pack(side="left")
label9.pack(side="right")
label10.pack(side="bottom")
# anchor選項示例
label11 = tk.Label(root, text="label11", bg="yellow", width=10, height=5)
label12 = tk.Label(root, text="label12", bg="purple", width=10, height=5)
label13 = tk.Label(root, text="label13", bg="gray", width=10, height=5)
label11.pack(anchor="nw")
label12.pack(anchor="center")
label13.pack(anchor="se")
root.mainloop()
原創文章,作者:ZSGC,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/138043.html