Cómo utilizar los grids en Tkinter

| Última modificación: 4 de julio de 2024 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

Tkinter es una librería de Python para el desarrollo de aplicaciones web. Es perfecta si deseas integrar ventanas, widgets o grids en tus aplicaciones de escritorio, pero ¿sabes cómo utilizar los grids en Tkinter? ¿O alguna de las otras herramientas?. Te recomendamos nuestros post acerca de cómo crear las ventanas y cómo utilizar los widgets en la librería de Python para aprender más y complementar la información sobre cómo utilizar grids en Tkinter.

Por ahora, este post será nuestra oportunidad de contarte acerca de los grids en Tkinter, su relación con los canvas y su funcionamiento sobre las ventanas de una aplicación.

Canvas y grids en Tkinter

Los grid en tkinter son una de las geometrías que utilizan con la librería Tkinter. Para utilizarlas, podemos usar un tipo de control, en este caso, canvas. Un canvas es un lienzo, donde Tkinter permite elegir el tamaño y el color, además de crear sobre el cualquier figura, entre otras opciones. En este caso, utilizarás el canvas solo como un lienzo donde añadirás los grids. Entonces, deberás empezar por crear el canvas de la siguiente forma para tu grid en tkinter:

#creación de la ventana
ws = tkinter.Tk()
#ponerle un título
ws.title ("Gride test")
#utilizar el canvas como lienzo, con el control del que depende, es decir, ws
cv = tkinter.Canvas (ws, width=50, height=50, bg="gray")

Acá ya habrás creado el grid en tkinter. Como en el caso de las ventanas y widgets, aún no aparecerá el grid con solo esta instrucción. Por tanto, debes, al igual que con los widgets, posicionar el grid con la opción de propagate de Tkinter.

Grid Propagate

La función del grid propagate tkinter en falso, al igual que sucede con los widgets, es desactivar la propagación de las mismas dimensiones entre un control, widget o grid a la ventana de la aplicación. Así que, si usas propagate podrás manejar el tamaño de tu grid según tu preferencia, no cambiará las dimensiones preestablecidas de las ventanas.

Para que se mantenga con las dimensiones originales deberás añadir las siguientes instrucciones:

#desactivar el propragate. funciona con 0 o con false
ws.grid_propagate (0)
#posicionar el grid en un lugar específico de la cuadrícula
cv.grid (column=0, row=0)

🔴 ¿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

Así, habrás utilizado la función de grid propagate tkinter.

Grid Row Column

Si, por otro lado, deseas que cada una de tus canvas tengan un espacio específico en la cuadrícula de tu ventana, las opciones de row y column te permitirán escoger el espacio que necesites. Esto se presenta en la consola de esta manera:

#creación del canvas
cv1 = tkinter.Canvas (ws, width=50, height=50, bg = "lightgray")
#posicionar el grid con las opciones row y column
cv1.grid ( row=1, column=1)
#creación de un segundo canvas
cv2 = tkinter.Canvas (ws, width=50, height=50, bg = "lightblue")
#posicionar un segundo grid con las opciones row y column
cv1.grid ( row=2, column=2 )

Grid Rowspan

Ahora, si crees que deberías poner un canvas en un espacio que no está especificado entre filas en la cuadrícula de tu ventana, puedes utilizar la opción rowspan de la siguiente forma:

#creación del canvas 
cv3 = tkinter.Canvas (ws, width=50, height=50, bg = "purple")
#lugar no especificado en la cuadrícula, está entre la fila 1 y la 2
cv1.grid ( row=0, column=2, rowspan=2)

Esta es otra forma de grid tkinter.

Grid Columnspan

Al igual que con la opción de rowspan, hay una forma para crear el canvas en un espacio no especificado entre columnas. Para ello, puedes utilizar las siguientes instrucciones de los grids en Tkinter:

#creación del canvas 
cv4 = tkinter.Canvas (ws, width=50, height=50, bg = "lightgreen")
#posicionar el canvas en un lugar no especificado en la cuadrícula, está entre la columna 1 y la 2
cv1.grid ( row=2, column=0, columnspan =2)

Es importante aclarar que, tanto en las columnas como en las filas, la cuenta empieza desde el 0. Así que si una ventana, por ejemplo, tiene solo 3 columnas, serán nombradas así: 0, 1, 2, como un grid tkinter.

Ahora que conoces más acerca de la herramienta de grids en Tkinter y su relación con la creación de canvas, puedes empezar a jugar con las posibilidades que brindan las opciones de esta geometría para el desarrollo de tus aplicaciones de escritorio, tal como grid propagate tkinter.

Si deseas saber más acerca del funcionamiento de los grids en Tkinter o de los conceptos clave para el desarrollo de aplicaciones de escritorio, te invitamos a revisar el programa de nuestro Bootcamp Aprende a Programar desde Cero. Después de completar las 5 etapas que te ofrecemos, en 4 meses podrás crear tus propios programas y convertirte en un programador junior de Python. ¡No dudes en solicitar más información al respecto para inscribirte y convertirte en un profesional del sector IT!

Ramón Maldonado

Full Stack Developer y Responsable de Formación base en KeepCoding.

Posts más leídos

¡CONVOCATORIA ABIERTA!

Aprende a Programar desde Cero

Full Stack Jr. Bootcamp

Apúntate y consigue uno de los perfiles más demandados con Python en solo 4 meses.