Tkinter窗口的大小可以通过以下方法控制:
.minsize()
.maxsize()
.resizable()
是否有等效的方法来控制Tkinter或ttk帧的大小?
@Bryan:我把你的frame1.pack代码改成了:
frame1.pack(fill='both', expand=True)
frame1.bind( '<Configure>', maxsize )
我添加了这个事件处理程序:
# attempt to prevent frame from growing past a certain size
def maxsize( event=None ):
print frame1.winfo_width()
if frame1.winfo_width() > 200:
print 'frame1 wider than 200 pixels'
frame1.pack_propagate(0)
frame1.config( width=200 )
return 'break'
上面的事件处理程序检测到帧的宽度太大,但无法阻止大小的增加。这是Tkinter的限制还是我误解了你的解释?
解决方法-至少对于最小大小:可以使用grid来管理根目录中包含的帧,并通过设置sticky=“nsew”使它们遵循网格大小。然后可以使用root.grid_rowconfigure和root.grid_columnconfigure设置minsize的值,如下所示:
但正如Brian在2010:D中所写,如果不限制窗口的最小值,您仍然可以将窗口大小调整为小于框架。
没有一个魔法函数能将一个帧强制到最小或固定的大小。但是,您当然可以通过为框架指定宽度和高度来强制框架的大小。然后,可能还需要做两件事:将此窗口放入容器中时,需要确保几何图形管理器不会收缩或展开窗口。第二,如果框架是其他小部件的容器,请关闭grid或pack传播,这样框架就不会收缩或展开以适合自己的内容。
但是,请注意,这不会阻止您将窗口大小调整为小于内部框架。那样的话,框架就被剪断了。
相关问题 更多 >
编程相关推荐