Mostrar mensajes con Tkinter de error, advertencia, info, etc.
Capítulo 10: Los cuadros de diálogo (messagebox)
En este capítulo vas a ver cómo crear cuadros de diálogo los conocidos en Tkinter como messagebox.
Un cuadro de diálogo es una ventanita, con título, un mensaje, algunos botones y un icono.
Son utilizados para informar a los usuarios sobre algún problema, alguna información extra, para decidir si aceptar o cancelar algo, etc.
Para acceder a estos cuadros de diálogo debemos importar algo más de Tkinter.
from tkinter import messagebox
Y ya sabes, al igual que con la biblioteca Tkinter, podemos importar todo de este módulo para no tener que escribir cada vez messagebox.
from tkinter.messagebox import *
Antes de crear tu primer pop-up quiero que sepas como cambiar el título y el icono de la ventana principal.
Para el título añadimos a la ventana principal un title
y para el icono un iconbitmap
que deberá ser una imagen con extensión .ico.
from tkinter import *
from tkinter.messagebox import *
root = Tk()
root.title("Este es el título de la ventana principal")
root.iconbitmap("img/computer.ico")
mainloop()
Ahora que ya tenemos personalizada la ventana principal, veamos cómo crear una ventana de diálogo o pop-up, llámalo como prefieras.
Para mostrarlo podemos crear una función que va a ser llamada en un evento, por ejemplo, cuando pulsemos un botón.
El messagebox showinfo de Tkinter
def muestra_ventana():
showinfo("Aquí se escribe el título de la ventana",
"Este es el mensaje que se muestra en la ventana.")
boton1 = Button(root, text="Enviar", command=muestra_ventana, width=75).pack()
Tenemos el tipo de cuadro de diálogo showinfo, que es el que estás viendo en la imagen de arriba. El primer parámetro de texto lo obtiene en su título y el segundo es la información que muestra. Además, muestra un icono propio del sistema operativo.
messagebox showwarning
El messagebox showwarning muestra las mismas características, solo que en lugar de llevar el icono de info, nos muestra uno de advertencia y el sonido también puede ser distinto según la configuración del sistema operativo que uses.
def muestra_ventana():
showwarning("Aquí se escribe el título de la ventana",
"Este es el mensaje que se muestra en la ventana.")
boton1 = Button(root, text="Enviar", command=muestra_ventana, width=75).pack()
messagebox showerror
Para los errores podemos configurar un showerror.
Lo mismo, titulo, mensaje, botón de aceptar y cambia el icono y el sonido.
def muestra_ventana():
showerror("Aquí se escribe el título de la ventana",
"Este es el mensaje que se muestra en la ventana.")
boton1 = Button(root, text="Enviar", command=muestra_ventana, width=75).pack()
Estos eran los cuadros de tipo informativo, ahora veamos los de tipo pregunta.
messagebox askquestion
Con askquestion tenemos un título y un mensaje, pero además nos da dos opciones, si o no y tiene un icono de interrogación.
def muestra_ventana():
askquestion("Aquí se escribe el título de la ventana",
"¿Debería dejar de programar y salir a la calle?")
boton1 = Button(root, text="Enviar", command=muestra_ventana, width=75).pack()
messagebox askyesno
El tipo de messagebox askyesno es igual que el anterior.
def muestra_ventana():
askyesno("Aquí se escribe el título de la ventana",
"¿Debería dejar de programar y salir a la calle?")
boton1 = Button(root, text="Enviar", command=muestra_ventana, width=75).pack()
Tienes en el vídeo el resto de tipos de messagebox. Son muy similares, así que no importa que ponga aquí el código.
En el siguiente capítulo te enseñaré a crear una serie de condiciones para poder interactuar y hacer algo con los botones de los messagebox.
Comentarios
Si te quedan dudas sobre el temario, sobre Tkinter, 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.