Cuadros de Dialogo tkinter

tkinter cuneta con cuadros de dialogo ya sea para mostrar al usuario alguna información o pedirle que introduzca datos que requiera la aplicación, existen dos tipos, los Modal bloquean la interfaz grafica de usuario (GUI) hasta que se cierre y los NonModal que interactúan con el usuario sin interferir con la ventana principal.

Cuadros de dialogo estándar

Estos son de tipo Modal por lo que bloquearan la ventana principal hasta que los cerremos, son usados comúnmente para mostrar información o preguntar al usuario si desea proceder o no con determina acción.

from tkinter.messagebox import *
askokcancel(title, message)
askquestion(title, message)  
askretrycancel(title, message)
askyesno(title, message)
     

Estos diálogos hacen una pregunta el usuario que indicamos en message, title es el titulo del cuadro de dialogo, este devuelve True si el usuario da una respuesta afirmativa y False en caso contrario. askquestion devuelve yes/no en lugar de True/False.

showerror(title, message)
showinfo(title, message)  
showwarning(title, message)


También estos son cuadros de dialogo, solo que están hachos únicamente para mostrar determinada información al usuario.


from tkinter import *
from tkinter.simpledialog import *

root = Tk()
print(askfloat('Entry', 'Enter float'))
print(askinteger('Entry', 'Enter integer'))
print(askstring('Entry', 'Enter string'))
root.mainloop()


Los cuadros de dialogo simples nos sirven para pedir al usuario introducir determinada información, están diseñados para admitir información de determinado tipo.

Cuadro de Dialogo de Archivos


tkinter posee cuadros de dialogo para buscar y guardar archivos y carpetas en disco, estos se encuentran en el modulo FileDialog, askopenfilename sirve para obtener la ruta de un archivo que se desea abrir y asksaveasfilename para guardarlo, también tenemos versiones para buscar directorios. Todos devuelven la ruta del archivo o carpeta seleccionada, excepto askopenfile() y asksaveasfile() que devuelven el archivo.

from tkinter.filedialog import *
askdirectory()
askopenfile()
askopenfilename()
askopenfilenames()
asksaveasfilename()
asksaveasfile()


Para configurar estos cuadros de dialogo podemos establecer sus opciones:
  • defaultextension: extensión por defecto para guardar determinado archivo.
  • filetypes: Indica el tipo de archivo que se pueden abrir.
  • initialdir, initialfile; Directorio y archivo inicial.
  • title: Cambia el titulo del cuadro de dialogo.
from tkinter.filedialog import *
opt = {
        'defaultextension':'.jpg',
        'filetypes' : [('Imagen', '*.Png'), ('Python','*.py')]
      }
asksaveasfile(**opt)


Cuadro de dialogo seleccionar color


Si lo que deseamos que el usuario seleccione un color usamos askcolor el cual nos devuelve el color seleccionado por el usuario en formato RGB y en el estándar de tkinter, None en caso de que el usuario presione Cancel. Podemos establecer la opción color para indicar un color inicial, title y parent con el los otros widgets.

__author__ = 'Carmelo'
from tkinter.colorchooser import *
print(askcolor())


Comentarios

Temas relacionados

Entradas populares de este blog

tkinter Grid

Controles y Contenedores JavaFX 8 - I

Conectar SQL Server con Java

tkinter Canvas