2010-10-20 109 views
2

我正在Python 2.7中使用Tkinter/ttk創建一個GUI,並且我遇到了一個問題,一旦框架被放置在框架中,框架將調整其自身的大小。我是Python的新手,並沒有使用過Tkinter。Tk/ttk中的框架大小調整問題python

例如:

ROOT = Tk() 
FRAME = ttk.Frame(ROOT, width=300, height=300, relief='groove') 
FRAME.grid() 
ROOT.mainloop() 

將產生一個開槽鏡架300x300的,如果我放置一個小部件在其內部,像這樣:

ROOT = Tk() 
FRAME = ttk.Frame(ROOT, width=300, height=300, relief='groove') 
BUTTON = ttk.Button(FRAME, text="DON'T READ THIS TEXT") 
FRAME.grid() 
BUTTON.grid() 
ROOT.mainloop() 

該幀將縮小到適合的按鈕。任何方式來強制框架不能調整大小?

+2

所有的UPPER_CASE_NAMES令人不安我... – 2010-10-20 15:20:28

回答

1

,如果你想添加填充,然後使用widg.grid(ipadx=..., ipady=..., padx=..., pady=...)

否則,你將需要添加到您嘗試什麼佈局,實現

+0

我不想添加填充,我想看看是否有一種方法來強制框架停留在我告訴它的大小,什麼是重點大小和寬度選項,如果它不成立? – user481875 2010-10-20 15:51:44

+1

@ user481875:高度和寬度僅與.place()幾何體管理器相關。使用.pack()或.grid()窗口管理器的想法是,您不需要關心窗口小部件的實際位置或大小,因爲幾何管理器將會明白這一點。 – 2010-10-20 16:01:50

+0

@ user481875:寬度和高度選項的要點是爲幾何管理器提供關於首選大小的提示。幾何管理器可能會根據您的配置方式選擇調整它們大小,但如果可能的話,它會嘗試遵守所需的大小。 – 2010-10-22 11:03:08

6

要強制框架,以保持其原始尺寸將更多的上下文「幾何傳播」關閉。在你的情況下,你可以撥打FRAME.grid_propagate(False)

作爲一個擁有超過15年Tk經驗的人,我可能會建議你幾乎肯定不需要這個功能。 Tk「縮小到適合」的能力非常棒,並且使用適當的調整行爲來創建GUI非常簡單。一旦開始關閉幾何圖形傳播,您會發現您的圖形用戶界面具有較差的調整行爲,或者您會花費大量時間調整大小和窗口小部件的位置。

+0

感謝您的解釋 – user481875 2010-10-22 14:21:40

-1

這應該做的工作:ROOT.geometry("640x480")

0

這個工作對我來說:

app = Application() 
app.master.title('Example') 
app.master.geometry('640x480') 
app.mainloop() 

Apllication是在我的情況與網格佈局框架。它調整爲主窗口的大小,所以我們需要更改主窗口的大小。