我有一個 Tkinter 類,其中有一個網格,每個網格行的權重應該與行配置中所述的權重相同,并且當我關閉傳播時,網格的內容不應影響網格尺寸。只要我在網格中有帶有背景顏色的空框架,這就可以正常工作,但是一旦我將一個按鈕添加到頂部網格行,該行的大小與其他行相比就會增加大約按鈕本身的高度。代碼如下:class MainMenuPage(tkinter.Frame):def __init__(self,parent,controller): tkinter.Frame.__init__(self,parent) self.controller=controller self.columnconfigure(0,weight=1) self.rowconfigure(0,weight=1) self.rowconfigure(1,weight=1) self.rowconfigure(2,weight=1) self.rowconfigure(3,weight=1) self.grid_propagate(0); self.color0=tkinter.Frame(self,bg="#bd1e2b") self.color0.grid(column=0,row=0,sticky="nesw") self.color1=tkinter.Frame(self,bg="#1e1ebd") self.color1.grid(column=0,row=1,sticky="nesw") self.color2=tkinter.Frame(self,bg="#1ebd48") self.color2.grid(column=0,row=2,sticky="nesw") self.color3=tkinter.Frame(self,bg="#bdb81e") self.color3.grid(column=0,row=3,sticky="nesw") image=Image.open("/path/settingsIcon.png") image=image.resize((54,54),Image.ANTIALIAS) self.settingsIcon=ImageTk.PhotoImage(image) self.settingsButton=tkinter.Button(self,compound=tkinter.TOP,width=54,height=54,image=self.settingsIcon,command=lambda:self.controller.showPage("valveMain")) self.settingsButton.grid(column=0,row=0,sticky="ne")添加按鈕時如何防止網格改變大?。?
1 回答

白豬掌柜的
TA貢獻1893條經驗 獲得超10個贊
我并不完全不明白你想要完成什么。如果目標是確保每行和/或列的大小相同,則可以將行和列配置為統一組的一部分。weight單獨不會這樣做,因為它只配置額外空間的分配方式,它不控制行或列的絕對大小。
要創建統一組,請使用和uniform選項。同一統一組中的所有行或列將具有與其權重成比例的相同大小。如果它們的重量相同,它們的大小將相同。row_configurecolumn_configure
從規范的 tcl/tk 文檔:
-uniform 選項在提供非空值時,將該行與具有相同 -uniform 值的其他行放在一個統一組中。為屬于統一組的行分配空間,以便它們的大小始終與其 -weight 值嚴格成比例。
在你的情況下,你可以嘗試這樣的事情:
self.rowconfigure(0,weight=1, uniform='row')
self.rowconfigure(1,weight=1, uniform='row')
self.rowconfigure(2,weight=1, uniform='row')
self.rowconfigure(3,weight=1, uniform='row')
有關更多信息,請參閱tcl/tk 文檔中的網格算法。它準確地描述了網格算法的工作原理。
添加回答
舉報
0/150
提交
取消