Tk/ttk中的框架大小调整问题python

问题描述:

我正在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

,如果你想添加填充,然后使用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

要强制框架,以保持其原始尺寸将更多的上下文“几何传播”关闭。在你的情况下,你可以拨打FRAME.grid_propagate(False)

作为一个拥有超过15年Tk经验的人,我可能会建议你几乎肯定不需要这个功能。 Tk“缩小到适合”的能力非常棒,并且使用适当的调整行为来创建GUI非常简单。一旦开始关闭几何图形传播,您会发现您的图形用户界面具有较差的调整行为,或者您会花费大量时间调整大小和窗口小部件的位置。

+0

感谢您的解释 – user481875 2010-10-22 14:21:40

这应该做的工作:ROOT.geometry("640x480")

这个工作对我来说:

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

Apllication是在我的情况与网格布局框架。它调整为主窗口的大小,所以我们需要更改主窗口的大小。