En este noveno día, vas a ver la personalización de ventanas, además de los métodos pack() y grid() de Tkinter.

Personalizar la ventana de Tkinter

Lo siguiente que vamos a hacer, es personalizar la ventana, para que por defecto se abra más grande, con diferente título, etc.

Cambiar el título de la ventana

Para cambiar el título de la ventana, lo haremos con el método title().

#Importaciones
from tkinter import *

#Creación de la ventana principal
root = Tk()

#Título de la ventana
root.title("Curso de Tkinter de Programación Fácil")

#Creación de la etiqueta
mensaje = Label(root, text="Mi primer programa con Tkinter.")
# Se muestra la etiqueta
mensaje.pack()

#Bucle de ejecución
root.mainloop()

Aparece el título, pero si no redimensionamos la ventana, no lo veremos completo. El tamaño de la ventana está saliendo en torno al contenido que tiene dentro.

tkinter ventana

Redimensionar el tamaño de la ventana de Tkinter

Podemos redimensionar e indicar la posición y el tamaño inicial de la ventana con «geometry()».

Lo primero que especifico (800) es el «width» y el «height» (600). Después, le indico el desplazamiento en coordenadas «x» (horizontal) de 560 y en «y» (vertical) de 240. Todos estos valores son píxeles.

#Importaciones
from tkinter import *

#Creación de la ventana principal
root = Tk()
#Título de la ventana
root.title("Curso de Tkinter de Programación Fácil")
#Tamaño de la ventana
root.geometry("800x600+560+240")

#Creación de la etiqueta
mensaje = Label(root, text="Mi primer programa con Tkinter.")
# Se muestra la etiqueta
mensaje.pack()

#Bucle de ejecución
root.mainloop()

Ahora sí, se ve todo correctamente.

cambiar el tamaño de la ventana en tkinter

El uso de pack() y grid()

Ahora, continuemos añadiendo otra etiqueta más.

#Importaciones
from tkinter import *

#Creación de la ventana principal
root = Tk()
#Título de la ventana
root.title("Curso de Tkinter de Programación Fácil")
#Tamaño de la ventana
root.geometry("400x300+560+240")

#Creación de las etiquetas
mensaje = Label(root, text="Mi primer programa con Tkinter.")
mensaje_2 = Label(root, text="Esta es la segunda etiqueta.")
# Se muestran las etiquetas
mensaje.pack()
mensaje_2.pack()

#Bucle de ejecución
root.mainloop()

Las dos etiquetas se muestran correctamente, según el orden en que tengamos los «pack()» en el código.

método pack de tkinter

Sin embargo, con este método, no podemos personalizar del todo donde aparecen los elementos. Tenemos el método grid() que permite mayor flexibilidad. Nos va a permitir hacer de nuestra ventana como una especie de tabla, donde podremos seleccionar las posiciones de los elementos en cuanto a filas y columnas.

#Importaciones
from tkinter import *

#Creación de la ventana principal
root = Tk()
#Título de la ventana
root.title("Curso de Tkinter de Programación Fácil")
#Tamaño de la ventana
root.geometry("400x300+560+240")

#Creación de las etiquetas
mensaje = Label(root, text="Mi primer programa con Tkinter.")
mensaje_2 = Label(root, text="Esta es la segunda etiqueta.")
# Se muestran las etiquetas
mensaje.grid(row=1, column=0)
mensaje_2.grid(row=0, column=0)

#Bucle de ejecución
root.mainloop()

Esta vez, independientemente de la posición en el código, aparecen los elementos en el orden que indico. Con «row» especifico la fila y con «column» la columna. Se empieza a contar siempre desde el 0.

grid tkinter

Ves haciendo pruebas y colocando los elementos en diferentes posiciones hasta dominarlo.

mensaje.grid(row=0, column=0)
mensaje_2.grid(row=0, column=1)
tkinter python

Hay una forma de especificar el grid directamente en la creación del elemento. Utiliza la forma que más te guste.

#Etiquetas
mensaje = Label(root, text="Mi primer programa con Tkinter.").grid(row=0, column=0)
mensaje_2 = Label(root, text="Esta es la segunda etiqueta.").grid(row=1, column=0)

Tienes los ejercicios correspondientes a este capítulo en este enlace. Cualquier duda sobre el temario o los ejercicios, no dudes en dejarme un comentario.

4 respuestas a «Tkinter – Ventanas – pack() y grid() – 100 días de Python #9»

  1. Buenardo! Estoy a full con tu curso, sos lo mas!

  2. Gracias

  3. Avatar de Anderson garcia
    Anderson garcia

    Gracias Maestro!

  4. […] son los ejercicios correspondientes al día 9 del reto Python de 100 días. Si quieres, puedes ver como los resuelvo en el vídeo […]

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Trending