亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Tkinter:框架不會擴展以使用 grid() 填充根小部件內的剩余空間

Tkinter:框架不會擴展以使用 grid() 填充根小部件內的剩余空間

慕尼黑8549860 2024-01-15 17:19:37
我一直在研究類似的線程,我唯一能理解的是建議使用方法expand選項pack(),我想知道是否可以擴展框架以用.grid()方法填充父小部件的可用空間?import tkinter as tkroot = tk.Tk()root.title('MSIV Preferences')root.geometry('850x450')frame = tk.Frame(root, bg='black')frame.grid(column=0, row=0)root.mainloop()
查看完整描述

1 回答

?
慕妹3242003

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()


查看完整回答
反對 回復 2024-01-15
  • 1 回答
  • 0 關注
  • 217 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號