python+tkinterでダイアログを作るためのテンプレート
ダイアログを作るときに、複数ページを調べ歩かなくても済むように。欲しいwidgetと機能が入ったテンプレートを作りました。python標準ライブラリのtkinter対応です。モーダルダイアログ、モードレスダイアログの両方に対応しています。自分用なので、一部のwidgetはテンプレートに入っていません。
モーダルダイアログ
モーダルダイアログを表示している間は、呼び出し元(メイン画面)の操作はできません。ダイアログを閉じた後に、ダイアログの設定値を取り出して使います。
モードレスダイアログ
モードレスダイアログを表示している間も呼び出し元(メイン画面)の操作ができます。ダイアログを閉じても「非表示」になっているだけで、再表示すれば途中までの入力内容も残っています。
ダイアログテンプレートにあるwidget一覧
コメントにはgrid指定によるwidget配置のコツの表記もあります。
テンプレートの中で必要なものはコピーしたり配置を変える。テンプレートに無いMenuやProgressbar等のwidgetは、自分がダイアログでは使わないので入っていません(メイン画面では使います)。「tkinter widget 一覧」で検索すれば見つかりますので、必要があればコピペしてください。
| widget | 備考 |
|---|---|
| Label | |
| Button | |
| Checkbutton | |
| Labelframe | いわゆるグループボックス |
| Radiobutton | |
| Combobox | 選択したときのメソッドあり |
| Listbox | 選択したときのメソッドあり |
| Text | |
| Scrollbar | Listbox/Textと連動する |
| Scrolledtext | Text+Scrollbarの代わり |
| filedialog | ファイル名入力(フォルダ名入力はコメントで) |
| Entry | パスワードやAPIキー入力でのポイントはコメントで |
| Spinbox | 間違えやすいポイントの指摘あり |
テンプレートダイアログは以下のような機能をサポートしています。
- モーダル、モードレスの切り替え フラグ引数(modalflag=TrueあるいはFalse)で指定することができます。
- モーダルダイアログの終了時。OK、Cancel、☒でのクローズの判別 ダイアログを閉じた場合に、ラジオボタン等の設定値を取り出して利用します。
- モーダルダイアログとモードレスダイアログ、それぞれの単体テストサンプル 呼び出し側のテンプレートクラス付きです。
- ダイアログから呼び出し側のインスタンスメソッドを呼び出し可能 モードレスダイアログの表示と非表示の切り替えに使っています。
途中で切り替えることはできません。
ダイアログテンプレート ソースコード
ご自由にお使いください。