如何设置框架的最小和最大高度或宽度?
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的限制,还是我误解了您的解释?
-
没有单个魔术功能可以将帧强制为最小或固定大小。但是,您可以通过为框架指定宽度和高度来强制框架的大小。然后,您可能还需要做两件事:将窗口放置在容器中时,需要确保几何管理器不会收缩或扩展窗口。第二,如果框架是其他小部件的容器,请关闭网格或包的传播,以使框架不会收缩或扩展以适合其自身的内容。
但是请注意,这不会阻止您将窗口的大小调整为小于内部框架。在这种情况下,框架将被剪切。
import Tkinter as tk root = tk.Tk() frame1 = tk.Frame(root, width=100, height=100, background="bisque") frame2 = tk.Frame(root, width=50, height = 50, background="#b22222") frame1.pack(fill=None, expand=False) frame2.place(relx=.5, rely=.5, anchor="c") root.mainloop()