在Tkinter 中使用權重擴展
在Tkinter 中,權重的概念控制佈局中的可用空間如何在列和行之間分配。每行或每列都有一個權重網格選項,用於確定當有額外空間時應擴展多少。
預設權重
預設情況下,所有行和列都有權重為 0,表示它們不應擴展以填充空間。這意味著任何額外的空間都將保持未使用狀態。
新增權重
如果有額外空間,非零權重會導致行或列成長。權重的值決定了它相對於其他加權元素應該擴展多少。例如,權重 1 分配的空間是權重 0.5 的兩倍。
代碼範例
考慮以下程式碼:
import tkinter as tk
root = tk.Tk()
root.geometry("200x100")
f1 = tk.Frame(root, background="bisque", width=10, height=100)
f2 = tk.Frame(root, background="pink", width=10, height=100)
f1.grid(row=0, column=0, sticky="nsew")
f2.grid(row=0, column=1, sticky="nsew")
root.grid_columnconfigure(0, weight=0) # no extra space for column 0
root.grid_columnconfigure(1, weight=0) # no extra space for column 1
root.mainloop()
此程式碼建立一個比所包含的幀大的視窗。因為所有列都沒有權重,所以額外的空間仍然未使用。
使用權重來擴展
向列或行添加權重可以使其擴展到附加空間空間。例如,以下程式碼將1 賦予第0 列:
root.grid_columnconfigure(0, weight=1)
root.grid_columnconfigure(0, Weight=1)現在,多餘的空間被分配到第0 列,使其更寬。
在多個元素中加權
root.grid_columnconfigure(0, weight=1)
root.grid_columnconfigure(1, weight=3)
root.grid_columnconfigure(0, Weight=1 )
root.grid_columnconfigure(1, Weight=3)這會產生一個佈局,其中第 0 列是第 1 列寬度的四分之一。
結論
Tkinter 中的權重提供了控制佈局內空間分佈的方法。透過為列或行分配權重,您可以確定如何利用可用空間,從而實現靈活且響應靈敏的佈局。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3