# Diálogos Tkinter

## `tkinter.simpledialog` —Diálogos de entrada estándar de Tkinter

Código fuente: Lib/tkinter/simpledialog.py

El módulo `tkinter.simpledialog` contiene clases y funciones convenientes para crear diálogos modales simples para obtener un valor de entrada del usuario.

`tkinter.simpledialog.``askfloat`(title, prompt, **kw)
`tkinter.simpledialog.``askinteger`(title, prompt, **kw)
`tkinter.simpledialog.``askstring`(title, prompt, **kw)

  Las tres funciones anteriores proporcionan diálogos que piden al usuario que introduzca un valor del tipo deseado.

class `tkinter.simpledialog.``Dialog`(parent, title=None)

  La clase base para los diálogos personalizados.

  > `body`(master)

  >   Sobrescribir para construir la interfaz del dialogo y retornar el widget que debe tener el foco inicial.

  > `buttonbox`()

  >   El comportamiento por defecto añade los botones OK y Cancelar. Sobrescribir para diseños de botones personalizados.

## Diálogos de selección de archivos

Código fuente: Lib/tkinter/filedialog.py

El módulo `tkinter.filedialog` proporciona clases y funciones de factoría para crear ventanas de selección de archivos/directorios.

### Diálogos nativos de carga/guardado

Las siguientes clases y funciones proporcionan ventanas de diálogo de archivos que combinan un aspecto nativo con opciones de configuración para personalizar el comportamiento. Los siguientes argumentos son aplicables a las clases y funciones enumeradas a continuación:

> parent - la ventana sobre la que se situará el diálogo
> title - el título de la ventana
> initialdir - el directorio en el que inicia el diálogo
> initialfile - el archivo seleccionado al abrir el diálogo
> filetypes - una secuencia de tuplas (label, pattern), se permite el comodín “*”
> defaultextension - extensión por defecto para añadir al archivo (diálogos de guardado)
> multiple - cuando es verdadero, se permite la selección de múltiples elementos

Funciones estáticas de factoría

Las siguientes funciones, al ser invocadas, crean un diálogo modal de aspecto nativo, esperan la selección del usuario y retornan el(los) valor(es) seleccionado(s) o `Ninguno` a la llamada.

`tkinter.filedialog.``askopenfile`(mode='r', **options)
`tkinter.filedialog.``askopenfiles`(mode='r', **options)

  Las dos funciones anteriores crean un diálogo `Open` y retornan el( los) objeto(s) de archivo(s) abierto(s) en modo de sólo lectura.

`tkinter.filedialog.``asksaveasfile`(mode='w', **options)

  Crea un diálogo `SaveAs` y retorna un objeto de un archivo abierto en modo de sólo escritura.

`tkinter.filedialog.``askopenfilename`(**options)
`tkinter.filedialog.``askopenfilenames`(**options)

  Las dos funciones anteriores crean un diálogo `Open` y retornan el( los) nombre(s) de archivo(s) seleccionado(s) que corresponde(n) a un(os) archivo(s) existente(s).

`tkinter.filedialog.``asksaveasfilename`(**options)

  Crea un diálogo `SaveAs` y retorna el nombre del archivo seleccionado.

`tkinter.filedialog.``askdirectory`(**options)
  Pide al usuario que seleccione un directorio.
  Argumento opcional adicional:
  mustexist - determina si la selección debe ser un directorio existente.

class `tkinter.filedialog.``Open`(master=None, **options)
class `tkinter.filedialog.``SaveAs`(master=None, **options)

  Las dos clases anteriores proporcionan ventanas de diálogo nativas para guardar y cargar archivos.

Clases de conveniencia

Las siguientes clases se utilizan para crear ventanas de archivos/directorios desde cero. Estas no emulan el aspecto nativo de la plataforma.

class `tkinter.filedialog.``Directory`(master=None, **options)

  Crear un diálogo que solicite al usuario que seleccione un directorio.

Nota

La clase FileDialog debe ser subclasificada para el manejo de eventos y comportamiento personalizados.

class `tkinter.filedialog.``FileDialog`(master, title=None)

  Crear un diálogo básico de selección de archivos.

  `cancel_command`(event=None)

    Activa la terminación de la ventana de diálogo.

  `dirs_double_event`(event)

    Manejador de eventos para el evento de doble clic sobre un directorio.

  `dirs_select_event`(event)

    Manejador de eventos para el evento de clic sobre un directorio.

  `files_double_event`(event)

    Manejador de eventos para el evento de doble clic sobre un archivo.

  `files_select_event`(event)

    Manejador de eventos para el evento de un solo clic sobre un archivo.

  `filter_command`(event=None)

    Filtra los archivos por directorio.

  `get_filter`()

    Recupera el filtro de archivos que se está utilizando actualmente.

  `get_selection`()

    Recupera el elemento seleccionado actualmente.

  `go`(dir_or_file=os.curdir, pattern='*', default='', key=None)

    Renderiza el diálogo e inicia el bucle de eventos.

  `ok_event`(event)

    Salir del diálogo retornando la selección actual.

  `quit`(how=None)

    Salir del diálogo retornando el nombre del archivo, si lo hay.

  `set_filter`(dir, pat)

    Establece el filtro de archivos.

  `set_selection`(file)

    Actualiza la selección de archivos actual a archivo.

class `tkinter.filedialog.``LoadFileDialog`(master, title=None)

  Una subclase de FileDialog que crea una ventana de diálogo para seleccionar un archivo existente.

  `ok_command`()

    Comprueba que se proporciona un archivo y que la selección indica un archivo ya existente.

class `tkinter.filedialog.``SaveFileDialog`(master, title=None)

  Una subclase de FileDialog que crea una ventana de diálogo para seleccionar un archivo de destino.

  `ok_command`()

    Comprueba si la selección apunta a un archivo válido que no es un directorio. Se requiere confirmación si se selecciona un archivo ya existente.

## `tkinter.commondialog` — Plantillas de ventanas de diálogo

Código fuente: Lib/tkinter/commondialog.py

El módulo `tkinter.commondialog` proporciona la clase `Dialog` que es la clase base para los diálogos definidos en otros módulos de soporte.

class `tkinter.commondialog.``Dialog`(master=None, **options)
  `show`(color=None, **options)

    Renderiza la ventana de diálogo.

Ver también

Módulos `tkinter.messagebox`, Leyendo y escribiendo archivos