在Tkinter 中使用權重擴展
在Tkinter 中,權重的概念控制佈局中的可用空間如何在列和行之間分配。每行或每列都有一個權重網格選項,用於確定當有額外空間時應擴展多少。
預設權重
預設情況下,所有行和列都有權重為 0,表示它們不應擴展以填充空間。這意味著任何額外的空間都將保持未使用狀態。
增加權重
如果有額外空間,非零權重會導致行或列增長。權重的值決定了它相對於其他加權元素應該擴展多少。例如,權重 1 分配的空間是權重 0.5 的兩倍。
程式碼範例
考慮以下程式碼:
<code class="python">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()</code>
此程式碼建立比所包含的框架更大的視窗。因為所有列都沒有權重,所以額外的空間仍然未使用。
使用權重來擴展
為列或行添加權重可以使其擴展為額外的空間空間。例如,以下程式碼為第 0 列賦予 1 的權重:
<code class="python">root.grid_columnconfigure(0, weight=1)</code>
現在,額外的空間被分配給第 0 列,使其更寬。
加權倍數元素
當多個列或多行具有權重時,它們將按其權重的比例共享可用空間。例如,要將1/4 的空間分配給第0 列,將3/4 的空間分配給第1 列,您可以使用下列權重:
<code class="python">root.grid_columnconfigure(0, weight=1) root.grid_columnconfigure(1, weight=3)</code>
這將導致第0 列是四分之一的佈局第1 列的寬度。
結論
Tkinter 中的權重提供了一種控制佈局內空間分佈的方法。透過為列或行分配權重,您可以確定如何利用可用空間,從而實現靈活且響應靈敏的佈局。
以上是Tkinter 如何使用權重來管理佈局中的空間分佈?的詳細內容。更多資訊請關注PHP中文網其他相關文章!