Los cuadros de diálogo (messagebox) - Tkinter desde cero - Capítulo 10


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.

Código

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.

Código

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.

Código

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()

Resultado

Icono y título ventana Tkinter

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.

messagebox showinfo

Código

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()

Resultado

Messagebox showinfo tkinter

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

Veamos showwarning. Este tipo de cuadro 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.

Código

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()

Resultado

Messagebox showwarning tkinter

messagebox showerror

Para los errores podemos configurar un showerror.
Lo mismo, titulo, mensaje, botón de aceptar y cambia el icono y el sonido.

Código

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()

Resultado

Messagebox showerror tkinter

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.

Código

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()

Resultado

Messagebox askquestion tkinter

messagebox askyesno

Este tipo es igual que el anterior.

Código

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()

Resultado

Messagebox askyesno tkinter

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.


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.