# Tkinter dialogs

## `tkinter.simpledialog` — Standard Tkinter input dialogs

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

The `tkinter.simpledialog` module contains convenience classes and functions for creating simple modal dialogs to get a value from the user.

tkinter.simpledialog.askfloat(title, prompt, *, initialvalue=None, minvalue=None, maxvalue=None, parent=None, use_ttk=True)
tkinter.simpledialog.askinteger(title, prompt, *, initialvalue=None, minvalue=None, maxvalue=None, parent=None, use_ttk=True)
tkinter.simpledialog.askstring(title, prompt, *, initialvalue=None, show=None, parent=None, use_ttk=True)

  Prompt the user to enter a value of the desired type and return it, or `None` if the dialog is cancelled.

  title is the dialog title and prompt the message shown above the entry. initialvalue is the value initially placed in the entry. parent is the window over which the dialog is shown. `askinteger()` and `askfloat()` also accept minvalue and maxvalue, which bound the accepted value. `askstring()` also accepts show, a character used to mask the entered text, for example `'*'` to hide a password. They use the themed `tkinter.ttk` widgets; pass `use_ttk=False` for the classic widgets.

class tkinter.simpledialog.Dialog(parent, title=None, *, use_ttk=False)

  The base class for custom dialogs. Instantiating it shows the dialog modally and returns once the user closes it; the entered value is then available in the `result` attribute. When use_ttk is false (the default), the dialog is built from the classic `tkinter` widgets, modelled on the classic `tk_dialog`; when true, from the themed `tkinter.ttk` widgets, modelled on the Tk message box. The default is classic for compatibility, since the themed widgets set a themed background that classic widgets added in `body()` would not match.

  Distinto en la versión 3.16.0a0 (unreleased): Added the use_ttk parameter.

  result

    The value produced by `apply()`, or `None` if the dialog was cancelled.

  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.

  validate()

    Validate the data entered by the user. Return true if it is valid, in which case the dialog proceeds to `apply()`; return false to keep the dialog open. The default implementation always returns true; override it to check the input.

  apply()

    Process the data entered by the user, for example by storing it in the `result` attribute. Called after `validate()` succeeds and just before the dialog is destroyed. The default implementation does nothing; override it to act on or store the result.

  destroy()

    Destroy the dialog window, clearing the reference to the widget that had the initial focus.

class tkinter.simpledialog.SimpleDialog(master, text='', buttons=[], default=None, cancel=None, title=None, class_=None, *, bitmap=None, detail='', use_ttk=True)

  A simple modal dialog that displays the message text above a row of push buttons given by buttons, and returns the index of the button the user presses. Each entry of buttons is either a button label, or a mapping of button options such as `{'text': 'OK', 'underline': 0}`; an `underline` option makes `Alt` plus the underlined character invoke the button. default is the index of the default button, activated by the Return key when no button has the focus, cancel the index returned when the window is closed through the window manager, title the window title, and class_ the Tk class name of the window. bitmap is the name of a bitmap displayed beside the message (for example `'warning'` or `'question'`); the standard names `'error'`, `'info'`, `'question'` and `'warning'` are shown as themed icons when use_ttk is true. detail is a secondary message displayed below text. When use_ttk is true (the default), the dialog is built from the themed `tkinter.ttk` widgets, modelled on the Tk message box; when false, from the classic `tkinter` widgets, modelled on `tk_dialog`.

  Distinto en la versión 3.16.0a0 (unreleased): The dialog is now built from the themed `tkinter.ttk` widgets by default, instead of the classic `tkinter` widgets. Added the bitmap, detail and use_ttk parameters. Entries of buttons may be mappings of button options.

  go()

    Display the dialog, wait until the user presses a button or closes the window, and return the index of the chosen button.

## `tkinter.filedialog` — File selection dialogs

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

The `tkinter.filedialog` module provides classes and factory functions for creating file/directory selection windows.

### Native load/save dialogs

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

The below functions when called create a modal, native look-and-feel dialog, wait for the user’s selection, and return it. The exact return value depends on the function (see below); when the dialog is cancelled it is the empty value documented for that function – an empty string, an empty tuple, an empty list or `None`.

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

  Create an `Open` dialog and return the opened file object, or `None` if the dialog is cancelled. The file is opened in mode mode (read-only `'r'` by default).

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

  Create an `Open` dialog and return a list of the opened file objects, or an empty list if cancelled. The files are opened in mode mode (read-only `'r'` by default).

  Deprecated since version 3.16.0a0 (unreleased), will be removed in version 3.19: Opening several files at once is error-prone, and the returned list cannot be used in a `with` statement. Iterate over the names returned by `askopenfilenames()` and open them one by one instead.

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

  Create a `SaveAs` dialog and return the opened file object, or `None` if the dialog is cancelled. The file is opened in mode mode (`'w'` by default).

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

  Create an `Open` dialog. `askopenfilename()` returns the selected filename as a string, or an empty string if the dialog is cancelled. `askopenfilenames()` returns a tuple of the selected filenames, or an empty tuple if cancelled.

tkinter.filedialog.asksaveasfilename(**options)

  Create a `SaveAs` dialog and return the selected filename as a string, or an empty string if the dialog is cancelled.

tkinter.filedialog.askdirectory(**options)

  Prompt the user to select a directory, and return its path as a string, or an empty string if the dialog is cancelled. Additional keyword option: mustexist - if true, the user may only select an existing directory (false by default).

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

  The above three classes provide native dialog windows for loading and saving files and for selecting a directory.

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.

Nota

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

class tkinter.filedialog.FileDialog(master, title=None, *, use_ttk=True)

  Create a basic file selection dialog. Its layout – a filter entry, side-by-side directory and file lists, and a selection entry – follows the classic Motif file selection dialog. When use_ttk is true (the default), the dialog is built from the themed `tkinter.ttk` widgets; when false, from the classic `tkinter` widgets.

  Distinto en la versión 3.16.0a0 (unreleased): The dialog is now built from the themed `tkinter.ttk` widgets by default, instead of the classic `tkinter` widgets. Added the use_ttk parameter.

  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.

  ok_command()

    Called when the user confirms the current selection. The base implementation accepts the selection and closes the dialog; `LoadFileDialog` and `SaveFileDialog` override it to check the selection first.

  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, *, use_ttk=True)

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

  Distinto en la versión 3.16.0a0 (unreleased): Added the use_ttk parameter.

  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, *, use_ttk=True)

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

  Distinto en la versión 3.16.0a0 (unreleased): Added the use_ttk parameter.

  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` — Dialog window templates

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

The `tkinter.commondialog` module provides the `Dialog` class that is the base class for dialogs defined in other supporting modules.

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

    Renderiza la ventana de diálogo.

## `tkinter.dialog` — Classic Tk dialog boxes

Source code: Lib/tkinter/dialog.py

The `tkinter.dialog` module provides a simple modal dialog box built on the classic (non-themed) Tk widgets.

tkinter.dialog.DIALOG_ICON

  The name of a bitmap (`'questhead'`) suitable for use as the bitmap of a `Dialog`.

class tkinter.dialog.Dialog(master=None, cnf={}, **kw)

  Display a modal dialog box built from the classic (non-themed) Tk widgets and wait for the user to press one of its buttons. The options, given through cnf or as keyword arguments, are all required: title (the window title), text (the message), bitmap (the name of a bitmap icon, such as `DIALOG_ICON`), default (the index of the default button) and strings (the sequence of button labels). After construction, the `num` attribute holds the index of the button the user pressed.

  destroy()

    Do nothing. The dialog window is destroyed automatically before the constructor returns, so there is nothing left for this method to do.

Ver también

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