首頁  >  文章  >  後端開發  >  權重在 Tkinter 的網格幾何中如何發揮作用?

權重在 Tkinter 的網格幾何中如何發揮作用?

Barbara Streisand
Barbara Streisand原創
2024-10-24 11:35:02886瀏覽

How Does Weight Function in Tkinter's Grid Geometry?

權重在 Tkinter 中執行哪些功能?

Tkinter 提供了一個全面的網格幾何管理器,用於在視窗內組織小部件。網格的一個關鍵屬性是「權重」選項,它控制容器中有剩餘空間時列和行如何擴展。

預設情況下,每個網格單元格的權重為 0,表示它應該不會增長超過其初始大小。但是,如果有額外空間可用,則為行或列指派非零權重會觸發其擴充。

權重實際示範

請考慮以下程式碼:

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)
root.grid_columnconfigure(1, weight=0)

root.mainloop()

此程式碼建立一個帶有兩個並排放置的框架f1 和f2的視窗。由於沒有對列套用權重,所以任何可用空間都不會被使用。

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=1)

root.mainloop()

將權重加到第一列可以確保當視窗放大時,額外的空間將分配給第一列列。

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=1)
root.grid_columnconfigure(1, weight=3)

root.mainloop()

為列分配不同的權重可以按比例分配多餘空間。在此範例中,第二列的權重是第一列的三倍,從而形成 1:3 的比例。

權重的威力在於其對視窗大小調整的動態反應。當視窗擴展時,小部件會適應可用空間,同時保持其相對比例。這種靈活性對於創建響應靈敏且適應性強的圖形使用者介面至關重要。

以上是權重在 Tkinter 的網格幾何中如何發揮作用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn