¿Cómo establecer el mínimo y máximo de altura o ancho de un marco?

El tamaño de las ventanas Tkinter se puede controlar a través de los siguientes métodos:

.minsize() .maxsize() .resizable() 

¿Hay formas equivalentes de controlar el tamaño de los marcos Tkinter o ttk?

@Bryan: cambié tu código frame1.pack a lo siguiente:

 frame1.pack(fill='both', expand=True) frame1.bind( '', maxsize ) 

Y agregué este controlador de eventos:

 # 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' 

El controlador de eventos anterior detecta que el ancho de un cuadro es demasiado grande, pero no puede evitar que el aumento de tamaño ocurra. ¿Es esto una limitación de Tkinter o he malinterpretado su explicación?

No existe una función mágica única para forzar un marco a un tamaño mínimo o fijo. Sin embargo, ciertamente puede forzar el tamaño de un marco al darle al marco un ancho y alto. Luego, tiene que hacer potencialmente dos cosas más: cuando coloca esta ventana en un contenedor, debe asegurarse de que el administrador de geometría no se contraiga ni expanda la ventana. Dos, si el marco es un contenedor para otro widget, desactive la propagación de la cuadrícula o el paquete para que el marco no se contraiga o expanda para que se ajuste a su propio contenido.

Sin embargo, tenga en cuenta que esto no evitará que cambie el tamaño de una ventana para que sea más pequeña que un marco interno. En ese caso el marco será recortado.

 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()