Dialogos y mensajes con Tkinter en Python
Cuadros de diálogos en Tkinter |
Una parte importante a la hora de trabajar con aplicaciones gráficas son los cuadros de dialogo y mensajes que puedan ir apareciendo al interactuar con nuestra aplicación.
Puedes ver la primera entrada que he realizado sobre aplicaciones gráficas con Tkinter.
Cajas de diálogo
El módulo tkMessageBox proporciona una interfaz de mensajes de diálogo.
Las cajas de diálogos se crean de la siguiente manera:
tkMessageBox.function(title, message, [, options])
Donde title es el título de la caja, message es el mensaje del cuerpo (se puede utilizar "n" para hacer saltos de línea) y options son las opciones que se pueden utilizar para cambiar la apariencia de la caja de diálogo.
Ejemplo de caja de diálogo en Tkinter:
Código:
#!/usr/bin/python # -*- coding: utf-8 -*- # www.pythondiario.com from Tkinter import * from tkMessageBox import * def pregunta(): showerror("Pregunta", "Discuple, no hay preguntas disponibles") def devolucion(): if askyesno('Verificar', '¿Realmente quiere salir?'): showwarning('Si', 'No está implementado') else: showinfo('No', 'Salir fue cancelado') Button(text='Salir', command=devolucion).pack(fill=X) Button(text='Pregunta', command=pregunta).pack(fill=X) mainloop()
Ejemplo de cuadro de diálogo |
Análisis del código:
En las primeras líneas de código importamos los módulos: Tkinter y tkMessageBox.
Creamos una función pregunta() que va a interactuar con el primer botón (Salir). Esta función hará que se despliegue la caja showerror.
Luego creamos otra función llamada devolucion() que interactúa con el segundo botón (Pregunta). Esta función hará que se despliegue el cuadro de diálogo askyesno, si el usuario elige SI se desplegará el cuadro showwarning, si elige NO se despliega el cuadro showinfo.
Por último creamos los botones y el bucle mainloop().
Otras funciones del módulo tkMessageBox:
askokcancel(title=None, message=None, **options)
Pregunta si la operación debe continuar, retorna True si la opción es OK
askokcancel |
askquestion(title=None, message=None, **options)
Realiza una pregunta
askquestion |
askretrycancel(title=None, message=None, **options)
Da la opción de reintentar la operación, devuelve True si la opción es Reintentar.
askretrycancel |
askyesno(title=None, message=None, **options)
Realiza una pregunta, devuelve True si la opción es SI
askyesno |
askyesnocancel(title=None, message=None, **options)
Realiza una pregunta, devuelve True si la opción es Si, devuelve None si la opción es Cancelar
askyesnocancel |
showerror(title=None, message=None, **options)
Muestra un mensaje de error
showerror |
showinfo(title=None, message=None, **options)
Muestra un mensaje de información
showinfo |
showwarning(title=None, message=None, **options)
Muestra un mensaje de precaución
showwarning |
Opciones del módulo tkMessageBox
default
¿Qué botón será la opción por defecto? Si esto no es especificado, el primer botón será la opción por defecto.
icon
Seleccione el icono que aparecerá en el cuadro de diálogo. Utilizar el argumento de la siguiente manera: icon=I, donde I es una constante definida en tkMessageBox (ERROR, INFO, QUESTION, WARNING)
parent
Si se deja por defecto esta opción, el cuadro de diálogo aparecerá por encima de la ventana principal. Para que aparezca por encima de una ventana secundaria W (nombre de la ventana), usamos el argumento parent=W.
Abrir o Guardar un archivo
Algo que se utiliza mucho cuando creamos aplicaciones gráficas es la opción de abrir o guardar un archivo. Esto lo podemos realizar con el módulo tkFileDialog.
tkFileDialog.askopenfilename([options])
Si el diálogo es cancelado por el usuario, la función devuelve None
tkFileDialog.asksaveasfilename([options])
Para ver las opciones que se pueden utilizar puedes entrar en el siguiente enlace: http://effbot.org/tkinterbook/tkinter-file-dialogs.htm
Código:
#!/usr/bin/python # -*- coding: utf-8 -*- # www.pythondiario.com from Tkinter import * from tkFileDialog import askopenfilename def llamada(): nombre = askopenfilename() print nombre errmsg = 'Error!' Button(text='Abrir archivo', command=llamada).pack(fill=X) mainloop()
Ejemplo tkFileDialog |
Espero estos ejemplos de diálogos y mensajes realizados con Python y Tkinter puedan ser de ayuda para tus aplicaciones gráficas. Cualquier duda o sugerencia dejar sus comentarios al final de la entrada. Gracias por visitar el blog 🙂 .
-
-
Gracias Alejandro, se que andas bastante interesado en el tema 🙂 . Ya van a venir nuevas entradas con más aplicaciones gráficas. Saludos y gracias por pasarte por el blog.
-
-
Justo lo que estaba necesitando! .... seguire atento los siguientes post!, Gracias!
-
Interesante! se agradece el aporte 🙂
-
Gracias a ti por visitar y participar en el blog. Saludos
-
-
BUEN DIA AMIGO ESTA MUY BIEN TU BLOG, EXELENTE EXPLICACION LAS IDEAS BASICAS SON LAS IMPROTANTES SALUDOS Y SUERTE
-
Tengo Python la version 3 y me dice que no tengo la libreria tkMessageBox
-
Hola Diego, como importas el módulo? import tkinter?
prueba con from tkinter import *Luego me cuentas, Saludos
-
Deja una respuesta
Muy buen post, Diego!