Yo sé que es demasiado trivial la pregunta, pero soy nuevo en python, y acabo de empezar a usar el tkinter módulo. De hecho he mirado por todos lados, y yo soy incapaz de encontrar la respuesta satisfactoria. He encontrado el siguiente:

fill opción: se determina si se utiliza más espacio o mantener
«propias» de las dimensiones.

expand opción: se trata de la expansión de los padres widget.

La problema es que estos dos sonido más o menos el mismo. Incluso he intentado un par de ejemplos por la alternancia entre los 4 valores de fill y 2 valores de expand pero recibió más o menos el mismo resultado en los 2 o 3 casos, debido a que tengo esta consulta. Se agradece cualquier ayuda en este respecto. Gracias de antemano!

InformationsquelleAutor Python_user | 2015-01-22

1 Comentario

  1. 30

    De effbot:

    La llenar opción le dice al gerente que el widget quiere cubrir todo el espacio asignado. El valor de los controles de cómo llenar el espacio; TANTO significa que el widget se debería ampliar tanto horisontally y verticalmente, X significa que debe expandir sólo horisontally, y Y significa que debe extenderse verticalmente.

    La ampliar opción le dice al gerente para asignar espacio adicional para el widget de casilla. Si el widget padre se hizo más grande de lo necesario para mantener todo lleno de widgets, el exceso de espacio se distribuirá entre todos los widgets que tiene el ampliar opción establece en un valor distinto de cero.

    Así fill dice el widget para crecer como cantidad de espacio disponible para ello en la dirección especificada, expand dice el maestro a tomar cualquier espacio que no está asignado a ningún widget y distribuirlo a todos los widgets que tiene un no-cero expand valor.

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

    Se puede ver que la etiqueta con expand=1 se le asigna el máximo de espacio disponible para ti, pero sólo ocupa en la dirección especificada, Y.
    La etiqueta con fill=tk.BOTH se expande en ambas direcciones, pero tiene menos espacio disponible.

    Diferencia entre

    • Oh, lo siento, a partir de la forma en que lo has descrito supuse que viene de otro sitio. Para conseguir algo más de sensación de las dos opciones, puedes jugar con las opciones en el ejemplo un poco, retire la expand de label1, establecer expand a 1 por tanto, tratar de fill=tk.X… El color de fondo realmente muestra que parte de la maestra (que es root en este caso) los aparatos de uso.
    • Sí las he probado. Y lo que me vino a asumir es que en python por defecto asigna todo el espacio horizontal para un widget. Por lo tanto, incluso si expand = 0 pero fill = X el widget ocupe toda la pantalla horizontal del espacio. Sin embargo, si expand = 0 pero fill = Y está escrito, entonces el tamaño de widget sigue siendo el mismo. Es correcto?
    • Sí, eso es correcto para los widgets lleno de side=TOP (por defecto) y BOTTOM. Para side=LEFT y RIGHT, el widget se ampliará automáticamente en el Y dirección. Usted puede ver mediante el establecimiento de fill=BOTH para ambos y side=LEFT para uno de ellos.
    • Impresionante! La probé side=LEFT & side=RIGHT y consiguió el resultado que usted ha mencionado. Seguramente, esto se despejaron todas las dudas con respecto a la fill y expand opciones. Gracias de nuevo!

Dejar respuesta

Please enter your comment!
Please enter your name here