El método grid() - Tkinter desde cero - Capítulo 3


En el capítulo anterior ya vimos cómo añadir widgets, en concreto el widget de marco, Frame().
En este vamos a ver cómo añadir otro widget nuevo, Label() y verás las diferencias entre los métodos pack() y grid().
Empecemos escribiendo una etiqueta Label().

Código

from tkinter import *
root = Tk()

# Dibuja un marco en la ventana
marco_principal = Frame()

#Etiqueta (Muestra un texto)
texto = Label(root, text="Capítulo 3 del curso Tkinter.")
texto.pack()

marco_principal.config(width=200, height=200, bg="red")
marco_principal.pack()

root.mainloop()

El método pack() se ejecuta según el flujo de ejecución de Python, el pack() que lea primero se muestra arriba en la ventana.

Ventana con Label y Frame

Si cambiamos este orden, el texto aparecerá debajo y el Frame() rojo arriba (te he marcado en negrita la parte del código que he cambiado de posición):

Código

from tkinter import *
root = Tk()

# Dibuja un marco en la ventana
marco_principal = Frame()

#Etiqueta (Muestra un texto)
texto = Label(root, text="Capítulo 3 del curso Tkinter.")

marco_principal.config(width=200, height=200, bg="red")
marco_principal.pack()

texto.pack()

root.mainloop()
Ventana con Label y Frame

El grid de Tkinter

Entramos en algo muy interesante de Tkinter, el método grid() el cuál es capaz de mostrar los elementos de un programa en forma de tabla bidimensional, es decir, podemos colocar las cosas por columnas y filas y olvidarnos del orden en el flujo de ejecución.

Bien, ¿pero cómo especificamos estas columnas y filas?
Con números de posición, así de fácil.

Vamos a sustituir los pack() por grid(), que en este caso, grid() también permite mostrar los widgets y además de eso, posicionarlos de una forma muy intuitiva.

Veamos algún ejemplo de colocación:

Código

marco_principal.grid(row=1,column=0)

texto.grid(row=0,column=0)
Ventana con Label y Frame

Código

marco_principal.grid(row=0,column=0)

texto.grid(row=0,column=1)
Ventana con Label y Frame

En el vídeo tienes algún ejemplo más y por supuesto, vamos a seguir utilizando grid() y pack() a lo largo del curso.


Suscríbete a mi canal de YouTube para apoyarme

Si te ha gustado este curso y crees que el trabajo merece la pena, te agradeceré eternamente que te suscribas a mi canal de YouTube para apoyarme y que pueda seguir haciendo cursos gratuitos.

Además, si te encanta la programación, tienes un montón más de cursos gratuitos para ver.

No solo eso, podrás participar enviándome comentarios con tus sugerencias para temas específicos o cursos completos o incluso las dudas que tengas y las intentaré ir resolviendo en los cursos que estén todavía abiertos.


Comentarios

Si te quedan dudas sobre el temario, sobre Python, o cualquier otra cosa relacionada o simplemente quieres agradecer, aquí tienes tu sitio para dejar tu granito de arena. Gracias por tus comentarios y por darle vida a este sitio web.