| Tkinter dialogs | |
| =============== | |
| :mod:`!tkinter.simpledialog` --- Standard Tkinter input dialogs | |
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | |
| .. module:: tkinter.simpledialog | |
| :synopsis: Simple dialog windows | |
| **Source code:** :source:`Lib/tkinter/simpledialog.py` | |
| -------------- | |
| The :mod:`!tkinter.simpledialog` module contains convenience classes and | |
| functions for creating simple modal dialogs to get a value from the user. | |
| .. function:: askfloat(title, prompt, *, initialvalue=None, minvalue=None, maxvalue=None, parent=None, use_ttk=True) | |
| askinteger(title, prompt, *, initialvalue=None, minvalue=None, maxvalue=None, parent=None, use_ttk=True) | |
| 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. | |
| :func:`askinteger` and :func:`askfloat` also accept *minvalue* and | |
| *maxvalue*, which bound the accepted value. | |
| :func:`askstring` also accepts *show*, a character used to mask the entered | |
| text, for example ``'*'`` to hide a password. | |
| They use the themed :mod:`tkinter.ttk` widgets; pass ``use_ttk=False`` for | |
| the classic widgets. | |
| .. class:: 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 :attr:`!result` attribute. | |
| When *use_ttk* is false (the default), the dialog is built from the classic | |
| :mod:`tkinter` widgets, modelled on the classic ``tk_dialog``; when true, | |
| from the themed :mod:`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 :meth:`body` would not match. | |
| .. versionchanged:: 3.16 | |
| Added the *use_ttk* parameter. | |
| .. attribute:: result | |
| The value produced by :meth:`apply`, or ``None`` if the dialog was | |
| cancelled. | |
| .. method:: body(master) | |
| Override to construct the dialog's interface and return the widget that | |
| should have initial focus. | |
| .. method:: buttonbox() | |
| Default behaviour adds OK and Cancel buttons. Override for custom button | |
| layouts. | |
| .. method:: validate() | |
| Validate the data entered by the user. | |
| Return true if it is valid, in which case the dialog proceeds to | |
| :meth:`apply`; return false to keep the dialog open. | |
| The default implementation always returns true; override it to check the | |
| input. | |
| .. method:: apply() | |
| Process the data entered by the user, for example by storing it in the | |
| :attr:`!result` attribute. | |
| Called after :meth:`validate` succeeds and just before the dialog is | |
| destroyed. | |
| The default implementation does nothing; override it to act on or store | |
| the result. | |
| .. method:: destroy() | |
| Destroy the dialog window, clearing the reference to the widget that had | |
| the initial focus. | |
| .. class:: 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 :kbd:`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 | |
| :mod:`tkinter.ttk` widgets, modelled on the Tk message box; when false, from | |
| the classic :mod:`tkinter` widgets, modelled on ``tk_dialog``. | |
| .. versionchanged:: 3.16 | |
| The dialog is now built from the themed :mod:`tkinter.ttk` widgets by | |
| default, instead of the classic :mod:`tkinter` widgets. | |
| Added the *bitmap*, *detail* and *use_ttk* parameters. | |
| Entries of *buttons* may be mappings of button options. | |
| .. method:: go() | |
| Display the dialog, wait until the user presses a button or closes the | |
| window, and return the index of the chosen button. | |
| :mod:`!tkinter.filedialog` --- File selection dialogs | |
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | |
| .. module:: tkinter.filedialog | |
| :synopsis: Dialog classes for file selection | |
| **Source code:** :source:`Lib/tkinter/filedialog.py` | |
| -------------- | |
| The :mod:`!tkinter.filedialog` module provides classes and factory functions for | |
| creating file/directory selection windows. | |
| Native load/save dialogs | |
| ------------------------ | |
| The following classes and functions provide file dialog windows that combine a | |
| native look-and-feel with configuration options to customize behaviour. | |
| The following keyword arguments are applicable to the classes and functions | |
| listed below: | |
| | *parent* - the window to place the dialog on top of | |
| | *title* - the title of the window | |
| | *initialdir* - the directory that the dialog starts in | |
| | *initialfile* - the file selected upon opening of the dialog | |
| | *filetypes* - a sequence of (label, pattern) tuples, '*' wildcard is allowed | |
| | *defaultextension* - default extension to append to file (save dialogs) | |
| | *multiple* - when true, selection of multiple items is allowed | |
| **Static factory functions** | |
| 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``. | |
| .. function:: askopenfile(mode="r", **options) | |
| Create an :class:`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). | |
| .. function:: askopenfiles(mode="r", **options) | |
| Create an :class:`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-removed:: 3.16 3.19 | |
| Opening several files at once is error-prone, | |
| and the returned list cannot be used in a :keyword:`with` statement. | |
| Iterate over the names returned by :func:`askopenfilenames` | |
| and open them one by one instead. | |
| .. function:: asksaveasfile(mode="w", **options) | |
| Create a :class:`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). | |
| .. function:: askopenfilename(**options) | |
| askopenfilenames(**options) | |
| Create an :class:`Open` dialog. | |
| :func:`askopenfilename` returns the selected filename as a string, or an | |
| empty string if the dialog is cancelled. | |
| :func:`askopenfilenames` returns a tuple of the selected filenames, or an | |
| empty tuple if cancelled. | |
| .. function:: asksaveasfilename(**options) | |
| Create a :class:`SaveAs` dialog and return the selected filename as a | |
| string, or an empty string if the dialog is cancelled. | |
| .. function:: 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:: Open(master=None, **options) | |
| SaveAs(master=None, **options) | |
| Directory(master=None, **options) | |
| The above three classes provide native dialog windows for loading and saving | |
| files and for selecting a directory. | |
| **Convenience classes** | |
| The below classes are used for creating file/directory windows from scratch. | |
| These do not emulate the native look-and-feel of the platform. | |
| .. note:: The *FileDialog* class should be subclassed for custom event | |
| handling and behaviour. | |
| .. class:: 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 | |
| :mod:`tkinter.ttk` widgets; when false, from the classic :mod:`tkinter` | |
| widgets. | |
| .. versionchanged:: 3.16 | |
| The dialog is now built from the themed :mod:`tkinter.ttk` widgets by | |
| default, instead of the classic :mod:`tkinter` widgets. | |
| Added the *use_ttk* parameter. | |
| .. method:: cancel_command(event=None) | |
| Trigger the termination of the dialog window. | |
| .. method:: dirs_double_event(event) | |
| Event handler for double-click event on directory. | |
| .. method:: dirs_select_event(event) | |
| Event handler for click event on directory. | |
| .. method:: files_double_event(event) | |
| Event handler for double-click event on file. | |
| .. method:: files_select_event(event) | |
| Event handler for single-click event on file. | |
| .. method:: filter_command(event=None) | |
| Filter the files by directory. | |
| .. method:: get_filter() | |
| Retrieve the file filter currently in use. | |
| .. method:: get_selection() | |
| Retrieve the currently selected item. | |
| .. method:: go(dir_or_file=os.curdir, pattern="*", default="", key=None) | |
| Render dialog and start event loop. | |
| .. method:: ok_event(event) | |
| Exit dialog returning current selection. | |
| .. method:: ok_command() | |
| Called when the user confirms the current selection. | |
| The base implementation accepts the selection and closes the dialog; | |
| :class:`LoadFileDialog` and :class:`SaveFileDialog` override it to check | |
| the selection first. | |
| .. method:: quit(how=None) | |
| Exit dialog returning filename, if any. | |
| .. method:: set_filter(dir, pat) | |
| Set the file filter. | |
| .. method:: set_selection(file) | |
| Update the current file selection to *file*. | |
| .. class:: LoadFileDialog(master, title=None, *, use_ttk=True) | |
| A subclass of FileDialog that creates a dialog window for selecting an | |
| existing file. | |
| .. versionchanged:: 3.16 | |
| Added the *use_ttk* parameter. | |
| .. method:: ok_command() | |
| Test that a file is provided and that the selection indicates an | |
| already existing file. | |
| .. class:: SaveFileDialog(master, title=None, *, use_ttk=True) | |
| A subclass of FileDialog that creates a dialog window for selecting a | |
| destination file. | |
| .. versionchanged:: 3.16 | |
| Added the *use_ttk* parameter. | |
| .. method:: ok_command() | |
| Test whether or not the selection points to a valid file that is not a | |
| directory. Confirmation is required if an already existing file is | |
| selected. | |
| :mod:`!tkinter.commondialog` --- Dialog window templates | |
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | |
| .. module:: tkinter.commondialog | |
| :synopsis: Tkinter base class for dialogs | |
| **Source code:** :source:`Lib/tkinter/commondialog.py` | |
| -------------- | |
| The :mod:`!tkinter.commondialog` module provides the :class:`Dialog` class that | |
| is the base class for dialogs defined in other supporting modules. | |
| .. class:: Dialog(master=None, **options) | |
| .. method:: show(**options) | |
| Render the Dialog window. | |
| :mod:`!tkinter.dialog` --- Classic Tk dialog boxes | |
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | |
| .. module:: tkinter.dialog | |
| :synopsis: A simple dialog box built on the classic Tk widgets. | |
| **Source code:** :source:`Lib/tkinter/dialog.py` | |
| -------------- | |
| The :mod:`!tkinter.dialog` module provides a simple modal dialog box built on | |
| the classic (non-themed) Tk widgets. | |
| .. data:: DIALOG_ICON | |
| The name of a bitmap (``'questhead'``) suitable for use as the *bitmap* | |
| of a :class:`Dialog`. | |
| .. class:: 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 :data:`DIALOG_ICON`), *default* (the index of the | |
| default button) and *strings* (the sequence of button labels). | |
| After construction, the :attr:`!num` attribute holds the index of the button | |
| the user pressed. | |
| .. method:: destroy() | |
| Do nothing. | |
| The dialog window is destroyed automatically before the constructor | |
| returns, so there is nothing left for this method to do. | |
| .. seealso:: | |
| Modules :mod:`tkinter.messagebox`, :ref:`tut-files` |