Cómo utilizar packs en Tkinter

Autor: | Última modificación: 13 de junio de 2022 | Tiempo de Lectura: 3 minutos
Temas en este post:

¿Has querido facilitar el desarrollo de tus aplicaciones en Tkinter? Si tu respuesta es afirmativa y ya has intentado usar las ventanas y los widgets en Tkinter, debes aprender cómo utilizar los packs en Tkinter. Con este conocimiento perfeccionarás las características de tu aplicación de escritorio y solucionarás problemas que, con solo la creación de constantes de los widgets y ventanas, no es posible. En este post, te hablamos sobre 3 opciones del método de packs en Tkinter que podrás empezar a integrar en tus programas de desarrollo de aplicaciones de escritorio.

Packs en Tkinter

Cuanto más te acercas al uso de ventanas, widgets y styles en Tkinter, más herramientas necesitas para complementar su trabajo. Según la documentación, el método packs en Tkinter es útil cuando necesitamos posicionar los widgets en bloques específicos para después ponerlos en la ventana principal. Hay varias opciones para utilizar el método pack.

Entre ellas, expand que, mientras son verdaderos, expandirá nuestros widgets en el espacio del frame o la ventana; fill, que determina si los widgets van a rellenar el espacio o permanecerán con las dimensiones que el programador propuso en primer lugar; y la opción side, que te permitirá decidir en qué lado deberán empaquetarse tus widgets.

Por ejemplo, en otro post sobre cómo crear widgets necesitábamos una instrucción diferente para posicionar unos widgets que no aparecían en nuestra pantalla. Esto se puede solucionar con los packs en Tkinter, como son la geometría pack, el propagate pack, y las opciones side, fill y expand.

Geometría pack

Pack: opción side

Una de las funcionalidades de este método es apilar los widgets según la dirección que el programador le indique. Por ejemplo, si se indica una dirección desde arriba, el pack apilará los widgets desde arriba hacia abajo. Para ellos utilizamos una de las cuatro constantes de Tkinter para side: TOP, BOTTOM, LEFT, RIGHT.

Continuando con el ejemplo del post sobre widgets en Tkinter, este es el paso que debes realizar para el posicionamiento de tu control o widget:

#establecer el widget

🔴 ¿Quieres Aprender a Programar con Python? 🔴

Descubre el Full Stack Jr. Bootcamp - Aprende a Programar desde Cero de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada

👉 Prueba gratis el Bootcamp Aprende a Programar desde Cero por una semana

btn_reset = tkinter.Button (fr:buttons, text = «Reset»)

#posicionar el widget según un side

btn_reset.pack (side = tkinter.TOP)

Ahora, si bien con la anterior instrucción ya te aparecerá el botón, el widget perderá las dimensiones que posiblemente estableciste en un paso anterior del programa. Por eso es necesario usar otro método pack, ya que el Geometría pack, con la opción side, actúa en uno de los hijos y esto hace que width y height (del frame padre original) dejen de tener efecto sobre el widget.

Pack propagate

Para conseguir que el height y width del frame padre no pierdan su efecto en el posicionamiento del widget, debemos indicarle a la función del frame, de nuevo, a width y height y efectuarlo con un Pack propagate.

#establecer el widget

btn_reset = tkinter.Button (fr:buttons, text = «Reset»)

#uso de geometríaPack

btn_reset.pack (side = tkinter.TOP)

#uso de Pack_propagate, debe ser falso o estar en 0

fr_buttons.pack_propagate (False)

#configuración de las dimensiones del botón

fr_buttons.config (width=200, height=260)

Pack: opciones Fill y Expand

Las otras dos opciones del método pack son la opción Fill y la opción Expand. La primero, fill, te posibilitará rellenar el widget en una determinada dirección. Esta opción tiene tres parámetros: tkinter.X, tkinter.Y (junto al pack expand) y Tkinter.BOTH, siendo el último la opción para rellenar el espacio con un botón horizontalmente y verticalmente.

#rellenar horizontalmente

btn_reset.pack (fill = tkinter.X)

#rellenar verticalmente – debe estar relacionado con el pack expand.

btn_reset_pack (fill = tkinter.Y)

#rellenar para ambas partes

btn_reset_pack (fill = tkinter.BOTH)

#no rellenar

btn_reset_pack (fill = tkinter.NONE)

Para hacer que el pack fill hacia la y, o sea, verticalmente, funcione debemos integrarlo con expand, es decir, expandirlo. Para esto se utiliza la siguiente función:

#expandir el botón

btn_reset.pack (expand=True)

#hacer que el botón o widget ocupe un frame entero, después de integrarle las instrucciones anteriores

btn_reset.pack (fill = tkinter.BOTH)

¿Quieres seguir aprendiendo?

Si bien ya conoces cómo utilizar packs en Tkinter, hay muchas más herramientas que aprender sobre esta esta librería para el desarrollo de tus aplicaciones de escritorio. Entonces, si quieres seguir aprendiendo, muchas de estas herramientas se utilizan en los ejercicios prácticos que ofrece el Bootcamp Aprende a Programar desde Cero de KeepCoding.

No te puedes perder la oportunidad de inscribirte a un bootcamp en el que podrás convertirte en un programador Junior de Python en 4 meses. Estamos seguros que disfrutarás de nuevos conceptos y herramientas en tu camino por la programación desde cero. ¡Solicita información y no dudes en inscribirte!

[email protected]

¿Sabías que hay más de 40.000 vacantes para desarrolladores web sin cubrir en España? 

En KeepCoding llevamos desde 2012 guiando personas como tú a áreas de alta empleabilidad y alto potencial de crecimiento en IT con formación de máxima calidad.

 

Porque creemos que un buen trabajo es fuente de libertad, independencia, crecimiento y eso ¡cambia historias de vida!


¡Da el primer paso!