我正在使用Python 2.7中的Tkinter / ttk创建一个GUI,而我遇到的问题是,一旦将一个小部件置于其中,Frame将自行调整大小。我是Python新手,之前没有使用过Tkinter。
示例:
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()
框架将缩小以适合按钮。有什么方法可以强制框架不调整大小?
答案 0 :(得分:6)
要强制框架保持其原始尺寸,请关闭“几何体传播”。在您的情况下,您可以致电FRAME.grid_propagate(False)
。
作为拥有超过15年Tk经验的人,我可能会建议您几乎肯定不需要此功能。 Tk“缩小到适合”的能力非常棒,并且可以很容易地创建具有适当调整大小行为的GUI。一旦你开始关闭几何传播,你会发现你的GUI会有不好的调整大小行为,或者你会花很多时间调整大小和小部件的位置。
答案 1 :(得分:1)
如果要添加填充,请使用widg.grid(ipadx=..., ipady=..., padx=..., pady=...)
否则,您需要在您尝试实现的布局上添加更多上下文
答案 2 :(得分:0)
这对我有用:
app = Application()
app.master.title('Example')
app.master.geometry('640x480')
app.mainloop()
Apllication在我的情况下是框架网格布局。它调整为主窗口的大小,因此我们需要更改主窗口的大小。
答案 3 :(得分:-1)
这应该可以胜任:ROOT.geometry("640x480")