Tkinter のダイアログ
********************


"tkinter.simpledialog" --- Tkinter の標準入力ダイアログ
=======================================================

**ソースコード:** Lib/tkinter/simpledialog.py

======================================================================

"tkinter.simpledialog" モジュールには、ユーザーから値を受け取るための
単純なモーダルダイアログを作る便利なクラスと関数があります。

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

   指定した型の値を入力するようユーザーに促し、その値を返します。 ダイ
   アログをキャンセルした場合は "None" を返します。

   *title* はダイアログのタイトル、*prompt* は入力欄の上に表示するメッ
   セージです。 *initialvalue* は入力欄の初期値です。 *parent* はダイ
   アログの背後に置くウィンドウです。 "askinteger()" と "askfloat()"
   は、入力値の範囲を制限する *minvalue* と *maxvalue* も受け付けます
   。 "askstring()" は、入力されたテキストを隠す文字を指定する *show*
   も受け付けます。 例えばパスワードを隠すには "'*'" を指定します。

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

   独自のダイアログの基底クラスです。 インスタンス化するとダイアログを
   モーダルに表示し、ユーザーが閉じると戻ります。 入力された値は
   "result" 属性から取得できます。

   result

      "apply()" が生成した値、またはダイアログがキャンセルされた場合は
      "None"。

   body(master)

      このメソッドをオーバーライドしてダイアログのインターフェースを構
      築し、初期フォーカスを持たせるウィジェットを返してください。

   buttonbox()

      デフォルト動作はOKとCancelボタンを追加します。カスタムのボタンレ
      イアウトが必要であればオーバーライドします。

   validate()

      ユーザーが入力したデータを検証します。 有効なら真を返し、ダイア
      ログは "apply()" の処理に進みます。 偽を返すとダイアログを開いた
      ままにします。 デフォルトの実装は常に真を返します。 入力をチェッ
      クするにはオーバーライドしてください。

   apply()

      ユーザーが入力したデータを、例えば "result" 属性に保存するなどし
      て処理します。 "validate()" が成功した後、ダイアログが破棄される
      直前に呼ばれます。 デフォルトの実装は何もしません。 結果を使って
      処理したり保存したりするにはオーバーライドしてください。

   destroy()

      ダイアログウィンドウを破棄し、初期フォーカスを持っていたウィジェ
      ットへの参照をクリアします。

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

   *buttons* でラベルを指定したボタンを横に並べ、その上にメッセージ
   *text* を表示する単純なモーダルダイアログです。 ユーザーが押したボ
   タンのインデックスを返します。 *default* は Return キーで作動するボ
   タンのインデックス、*cancel* はウィンドウマネージャからウィンドウを
   閉じたときに返すインデックス、*title* はウィンドウのタイトル、
   *class_* はウィンドウの Tk クラス名です。

   go()

      ダイアログを表示し、ユーザーがボタンを押すかウィンドウを閉じるま
      で待って、選択されたボタンのインデックスを返します。


"tkinter.filedialog" --- ファイル選択ダイアログ
===============================================

**ソースコード:** Lib/tkinter/filedialog.py

======================================================================

"tkinter.filedialog" モジュールは、ファイルやディレクトリの選択ウィン
ドウを作るクラスとファクトリ関数を提供します。


ネイティブの読み込み・保存ダイアログ
------------------------------------

下記のクラスは、振る舞いをカスタマイズできる設定オプション付きの、ネイ
ティブルック＆フィールと統合したファイルダイアログを提供します。以下の
キーワード引数は、下記で列挙するクラスや関数に適用できます。

      *parent* - ダイアログをその上に表示するウィンドウ

      *title* - ウィンドウのタイトル

      *initialdir* - 最初に表示するディレクトリ

      *initialfile* - ダイアログを表示した際に選択するファイル

      *filetypes* - (ラベル, パターン) のタプルからなるシーケンスで、'*' ワイルドカードが利用できます

      *defaultextension* - ファイルに追加するデフォルトの拡張子 (保存ダイアログ向け)

      *multiple* - 真の場合、複数要素の選択を許可します

**静的なファクトリ関数**

以下の関数を呼ぶと、ネイティブのルックアンドフィールを持つモーダルダイ
アログを作り、ユーザーの選択を待って、その結果を返します。 具体的な返
り値は関数によって異なります (以下を参照)。 ダイアログをキャンセルした
場合は空文字列、空タプル、または "None" になります。 この空の値の型は
プラットフォームや Tk のバージョンによって異なる場合があるため、特定の
値と比較するのではなく、結果の真偽値を調べてください。

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

   "Open" ダイアログを作ります。 "askopenfile()" は開いたファイルオブ
   ジェクトを返し、ダイアログをキャンセルした場合は "None" を返します
   。 "askopenfiles()" は開いたファイルオブジェクトのリストを返し、キ
   ャンセルした場合は空タプルを返します。 ファイルは *mode* で指定した
   モード (デフォルトは読み取り専用の "'r'") で開きます。

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

   "SaveAs" ダイアログを作り、開いたファイルオブジェクトを返します。
   ダイアログをキャンセルした場合は "None" を返します。 ファイルは
   *mode* で指定したモード (デフォルトは "'w'") で開きます。

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

   "Open" ダイアログを作ります。 "askopenfilename()" は選択したファイ
   ル名を文字列として返し、ダイアログをキャンセルした場合は空文字列を
   返します。 "askopenfilenames()" は選択したファイル名のタプルを返し
   、キャンセルした場合は空タプルを返します。

tkinter.filedialog.asksaveasfilename(**options)

   "SaveAs" ダイアログを作り、選択したファイル名を文字列として返します
   。 ダイアログをキャンセルした場合は空文字列を返します。

tkinter.filedialog.askdirectory(**options)

   ユーザーにディレクトリを選択するよう促し、そのパスを文字列として返
   します。 ダイアログをキャンセルした場合は空文字列を返します。 追加
   のキーワードオプション *mustexist* を真にすると、ユーザーは既存のデ
   ィレクトリだけを選択できます (デフォルトは偽)。

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

   上記の 3 つのクラスは、ファイルの読み込み・保存とディレクトリの選択
   に使うネイティブのダイアログウィンドウを提供します。

**便利なクラス**

以下のクラスは、ファイルやディレクトリのウィンドウを一から作るために使
います。 プラットフォームのネイティブのルックアンドフィールは再現しま
せん。

注釈:

  イベント処理や動作をカスタマイズするには、*FileDialog* クラスをサブ
  クラス化してください。

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

   基本的なファイル選択ダイアログを作ります。

   cancel_command(event=None)

      ダイアログウィンドウの終了を開始します。

   dirs_double_event(event)

      ディレクトリのダブルクリックイベントのハンドラー。

   dirs_select_event(event)

      ディレクトリのクリックイベントのハンドラー。

   files_double_event(event)

      ファイルのダブルクリックイベントのハンドラー。

   files_select_event(event)

      ファイルのシングルクリックイベントのハンドラー。

   filter_command(event=None)

      ディレクトリでファイルを絞り込みます。

   get_filter()

      現在使っているファイルフィルターを取得します。

   get_selection()

      現在選択されている項目を取得します。

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

      ダイアログを表示し、イベントループを開始します。

   ok_event(event)

      現在の選択を返してダイアログを終了します。

   ok_command()

      ユーザーが現在の選択を確定したときに呼ばれます。 基底クラスの実
      装は選択を受け入れてダイアログを閉じます。 "LoadFileDialog" と
      "SaveFileDialog" はこれをオーバーライドし、先に選択をチェックし
      ます。

   quit(how=None)

      ダイアログを終了し、ファイル名があれば返します。

   set_filter(dir, pat)

      ファイルフィルターを設定します。

   set_selection(file)

      現在のファイルの選択を *file* に更新します。

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

   既存のファイルを選択するダイアログウィンドウを作る FileDialog のサ
   ブクラスです。

   ok_command()

      ファイルが指定されていて、選択が既存のファイルを指していることを
      確認します。

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

   保存先のファイルを選択するダイアログウィンドウを作る FileDialog の
   サブクラスです。

   ok_command()

      選択がディレクトリではなく、有効なファイルを指しているかを確認し
      ます。 既存のファイルを選択した場合は確認を求めます。


"tkinter.commondialog" --- ダイアログウィンドウのテンプレート
=============================================================

**ソースコード:** Lib/tkinter/commondialog.py

======================================================================

"tkinter.commondialog" モジュールは、他の関連モジュールで定義するダイ
アログの基底クラスとなる "Dialog" クラスを提供します。

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

   show(**options)

      Dialog ウィンドウを表示します。


"tkinter.dialog" --- 従来の Tk ダイアログボックス
=================================================

**ソースコード:** Lib/tkinter/dialog.py

======================================================================

"tkinter.dialog" モジュールは、従来の (テーマを使わない) Tk ウィジェッ
トで作った単純なモーダルダイアログボックスを提供します。

tkinter.dialog.DIALOG_ICON

   "Dialog" の *bitmap* に適したビットマップの名前 ("'questhead'")。

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

   従来の (テーマを使わない) Tk ウィジェットで作ったモーダルダイアログ
   ボックスを表示し、ユーザーがいずれかのボタンを押すまで待ちます。
   *cnf* またはキーワード引数で渡すオプションはすべて必須です。
   *title* (ウィンドウのタイトル)、*text* (メッセージ)、*bitmap*
   ("DIALOG_ICON" などのビットマップアイコンの名前)、*default* (デフォ
   ルトのボタンのインデックス)、*strings* (ボタンのラベルのシーケンス)
   を指定します。 構築後、"num" 属性にユーザーが押したボタンのインデッ
   クスが入ります。

   destroy()

      何もしません。 コンストラクタから戻る前にダイアログウィンドウは
      自動的に破棄されるため、このメソッドが行うことは残っていません。

参考: "tkinter.messagebox" モジュール、ファイルを読み書きする
