Diferencia entre las opciones “llenar” y “expandir” para el método tkinter pack

Sé que esta es una pregunta demasiado trivial, pero soy nuevo en Python, y acabo de comenzar a usar el módulo tkinter . De hecho, lo he buscado en todas partes y no puedo encontrar una respuesta satisfactoria. Encontré lo siguiente:

opción de fill : determina si usar más espacio o mantener las dimensiones “propias”.

opción expand : se ocupa de la expansión del widget padre.

El problema es que estos dos suenan más o menos igual . Incluso probé algunos ejemplos al alternar entre los 4 valores de fill y los 2 valores de expand pero recibí más o menos el mismo resultado en 2 o 3 casos, debido a lo cual tengo esta consulta. Cualquier ayuda sería apreciada en este sentido. ¡Gracias por adelantado!

De effbot :

La opción de relleno le dice al administrador que el widget quiere llenar todo el espacio asignado. El valor controla cómo llenar el espacio; AMBOS significa que el widget debe expandirse horizontal y verticalmente, X significa que debe expandirse solo horizontalmente y Y significa que debe expandirse solo verticalmente.

La opción expandir le dice al administrador que asigne espacio adicional al cuadro del widget. Si el widget principal se hace más grande de lo necesario para mantener todos los widgets empaquetados, cualquier espacio excedente se distribuirá entre todos los widgets que tengan la opción de expansión establecida en un valor distinto de cero.

Por lo tanto, fill le dice al widget que crezca a la mayor cantidad de espacio disponible para él en la dirección especificada, expand le dice al maestro que tome cualquier espacio que no esté asignado a ningún widget y lo distribuya a todos los widgets que tengan un valor de expand distinto de cero.

La diferencia se hace evidente cuando se ejecuta este ejemplo:

 import Tkinter as tk root = tk.Tk() root.geometry('200x200+200+200') tk.Label(root, text='Label', bg='green').pack(expand=1, fill=tk.Y) tk.Label(root, text='Label2', bg='red').pack(fill=tk.BOTH) root.mainloop() 

Puede ver que la etiqueta con expand=1 se asigna a la mayor cantidad de espacio disponible para ella, pero solo la ocupa en la dirección especificada, Y. La etiqueta con fill=tk.BOTH expande en ambas direcciones, pero tiene menos espacio disponible.

Expandir vs Rellenar