ventanas tutorial toplevel sirve siguientes para los interfaz hijas grafica funcion eventos etiquetas elementos cuál atributos agregar python label tkinter frame

python - tutorial - ¿Cómo detener la reducción de Tkinter Frame para que se ajuste a su contenido?



toplevel tkinter (1)

Este es el código que me está causando problemas.

f = Frame(root, width=1000, bg="blue") f.pack(fill=X, expand=True) l = Label(f, text="hi", width=10, bg="red", fg="white") l.pack()

Si comente las líneas con la etiqueta, el cuadro se muestra con el ancho correcto. Sin embargo, agregar la etiqueta parece reducir el marco hasta el tamaño de la etiqueta. ¿Hay alguna manera de evitar que eso suceda?


De forma predeterminada, los fotogramas tk se contraen o crecen para ajustarse a sus contenidos , que es lo que desea el 99% del tiempo. El término que describe esta característica es "propagación de geometría". Hay un command para activar o desactivar la propagación de geometría cuando se usa el pack (y uno similar para la grid ).

Como está utilizando el paquete, la sintaxis sería:

f.pack_propagate(0)

o tal vez root.pack_propagate(0) , dependiendo de qué widget (s) realmente quiera afectar.

Dicho esto, la gran mayoría de las veces debe dejar que tkinter calcule el tamaño. Cuando desactivas la propagación de la geometría, tu GUI no responderá bien a los cambios en la resolución, los cambios en las fuentes, etc. Los gestores de geometría de tkinter ( pack , place y grid ) son notablemente potentes. Aprende a aprovechar ese poder.