1 回答

TA貢獻1824條經驗 獲得超6個贊
您需要做兩件事。首先,您需要告訴網格讓框架填充分配給它的空間,其次,您需要告訴網格將所有額外空間分配給包含框架的行和列。僅當您希望窗口小部件在調整窗口大小時繼續填充空間時才需要執行第二步。
第一個是使用記錄的sticky參數完成的,該參數告訴小部件“粘”到分配給它的空間的一側或多側。它需要一串羅盤方向。例如,“nsew”代表“北東南西”。這樣,框架將粘在分配給它的空間的所有四個邊上。
frame.grid(column=0, row=0, sticky="nsew")
第二步是告訴grid將其擁有的任何額外空間分配給包含框架的行和列。您可以通過將 a 分配weight給一個或多個行和列來實現這一點。grid將分配相對于 的額外空間weight。例如,一列權重為 2,一列權重為 1,一列權重為 0(默認),對于每三個像素的額外空間,兩個將進入一列,一列將進入另一列。
根據經驗,使用時應grid始終為至少一行和一列賦予正權重。
在你的情況下,它會是這樣的:
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()
添加回答
舉報