# Tkinter 對話框

## `tkinter.simpledialog` --- 標準 Tkinter 輸入對話框

原始碼：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, **kw)
tkinter.simpledialog.askinteger(title, prompt, **kw)
tkinter.simpledialog.askstring(title, prompt, **kw)

  The above three functions provide dialogs that prompt the user to enter a value of the desired type.

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

  The base class for custom dialogs.

  body(master)

    Override to construct the dialog's interface and return the widget that should have initial focus.

  buttonbox()

    Default behaviour adds OK and Cancel buttons. Override for custom button layouts.

## `tkinter.filedialog` --- 檔案選擇對話框

原始碼：Lib/tkinter/filedialog.py

The `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, then return the selected value(s) or `None` to the caller.

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

  The above two functions create an `Open` dialog and return the opened file object(s) in read-only mode.

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

  Create a `SaveAs` dialog and return a file object opened in write-only mode.

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

  The above two functions create an `Open` dialog and return the selected filename(s) that correspond to existing file(s).

tkinter.filedialog.asksaveasfilename(**options)

  Create a `SaveAs` dialog and return the selected filename.

tkinter.filedialog.askdirectory(**options)
  Prompt user to select a directory.
  Additional keyword option:
  mustexist - determines if selection must be an existing directory.

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

  The above two classes provide native dialog windows for saving and loading files.

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.

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

  Create a dialog prompting the user to select a directory.

備註

The FileDialog class should be subclassed for custom event handling and behaviour.

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

  Create a basic file selection dialog.

  cancel_command(event=None)

    Trigger the termination of the dialog window.

  dirs_double_event(event)

    Event handler for double-click event on directory.

  dirs_select_event(event)

    Event handler for click event on directory.

  files_double_event(event)

    Event handler for double-click event on file.

  files_select_event(event)

    Event handler for single-click event on file.

  filter_command(event=None)

    Filter the files by directory.

  get_filter()

    Retrieve the file filter currently in use.

  get_selection()

    Retrieve the currently selected item.

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

    Render dialog and start event loop.

  ok_event(event)

    Exit dialog returning current selection.

  quit(how=None)

    Exit dialog returning filename, if any.

  set_filter(dir, pat)

    Set the file filter.

  set_selection(file)

    Update the current file selection to file.

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

  A subclass of FileDialog that creates a dialog window for selecting an existing file.

  ok_command()

    Test that a file is provided and that the selection indicates an already existing file.

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

  A subclass of FileDialog that creates a dialog window for selecting a destination file.

  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.

## `tkinter.commondialog` --- Dialog window templates

原始碼：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)

    Render the Dialog window.

也參考

`tkinter.messagebox` 模組、讀寫檔案