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()

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