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

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

Tkinter:無法用小部件填充整個框架

Tkinter:無法用小部件填充整個框架

小唯快跑啊 2022-07-26 20:46:45
我正在嘗試創建三個框架:頂部、中間和底部。我成功地將小部件添加到我的頂部和底部框架中,并按照我想要的方式定位它們。但是,我只是想在中間框架中添加兩個條目小部件,它們將跨越框架/窗口的整個寬度。由于頂部和底部框架中所有小部件的代碼長度,我將僅包含一段代碼,說明如何配置我的窗口和框架:root = Tk()root.resizable(False, False)top_frame = Frame(root)middle_frame = Frame(root)bottom_frame = Frame(root)# I think this block is irrelavant to the question, but including it anyway just incaserows = 0while rows < 36:    top_frame.rowconfigure(rows, weight=1)    top_frame.columnconfigure(rows, weight=1)    bottom_frame.rowconfigure(rows, weight=1)    bottom_frame.columnconfigure(rows, weight=1)    rows += 1top_frame.grid(row=0, column=0)middle_frame.grid(row=1, column=0)bottom_frame.grid(row=2, column=0)這是我用于兩個條目小部件的代碼:entry_1 = Entry(middle_frame)entry_2 = Entry(middle_frame)entry_1.grid(row=0, column=0, sticky=E+W)entry_2.grid(row=1, column=0, sticky=E+W)但是,它們只是粘在中間框架的中心。我嘗試了許多解決方案,但似乎沒有任何改變這些條目小部件在框架內的外觀 - 始終居中,從不改變大小。我什至嘗試將它們打包并將它們的填充設置為 X。我可能忽略了一些非常簡單的東西,但我無法弄清楚。
查看完整描述

1 回答

?
慕絲7291255

TA貢獻1859條經驗 獲得超6個贊

問題的根源在于中間框架未配置為填充窗口的整個寬度,因此內部的小部件不會填充窗口的整個寬度。

第一步是使用sticky中間窗口上的選項:

middle_frame.grid(row=1, column=0, sticky="ew")

接下來,您還沒有告訴grid如何處理根窗口中的額外空間。根據經驗,任何grid用于管理其子級的小部件都應至少有一行和一列的權重大于零。

要讓中間框架占據窗口的整個寬度,請給它所在的列賦予非零權重:

root.grid_columnconfigure(0, weight=1)

中間框架中也存在同樣的問題:您沒有指導grid如何處理額外的空間。根據經驗法則,我們需要在中間框架內給第 0 列賦予權重:

middle_frame.grid_columnconfigure(0, weight=1)

這將允許中間框架中的條目小部件填充中間框架,并且我們已經配置應用程序以使中間框架填充窗口的整個寬度。


查看完整回答
反對 回復 2022-07-26
  • 1 回答
  • 0 關注
  • 109 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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