1 回答

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超6個(gè)贊
您需要做兩件事。首先,您需要告訴網(wǎng)格讓框架填充分配給它的空間,其次,您需要告訴網(wǎng)格將所有額外空間分配給包含框架的行和列。僅當(dāng)您希望窗口小部件在調(diào)整窗口大小時(shí)繼續(xù)填充空間時(shí)才需要執(zhí)行第二步。
第一個(gè)是使用記錄的sticky參數(shù)完成的,該參數(shù)告訴小部件“粘”到分配給它的空間的一側(cè)或多側(cè)。它需要一串羅盤方向。例如,“nsew”代表“北東南西”。這樣,框架將粘在分配給它的空間的所有四個(gè)邊上。
frame.grid(column=0, row=0, sticky="nsew")
第二步是告訴grid將其擁有的任何額外空間分配給包含框架的行和列。您可以通過將 a 分配weight給一個(gè)或多個(gè)行和列來實(shí)現(xiàn)這一點(diǎn)。grid將分配相對(duì)于 的額外空間weight。例如,一列權(quán)重為 2,一列權(quán)重為 1,一列權(quán)重為 0(默認(rèn)),對(duì)于每三個(gè)像素的額外空間,兩個(gè)將進(jìn)入一列,一列將進(jìn)入另一列。
根據(jù)經(jīng)驗(yàn),使用時(shí)應(yīng)grid始終為至少一行和一列賦予正權(quán)重。
在你的情況下,它會(huì)是這樣的:
root.grid_rowconfigure(0, weight=1)
root.grid_columnconfigure(0, weight=1)
這是完整的程序:
import tkinter as tk
root = tk.Tk()
root.title('MSIV Preferences')
root.geometry('850x450')
root.grid_rowconfigure(0, weight=1)
root.grid_columnconfigure(0, weight=1)
frame = tk.Frame(root, bg='black')
frame.grid(column=0, row=0, sticky="nsew")
root.mainloop()
添加回答
舉報(bào)