0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

python+tkinterでダイアログを使うためのテンプレート

Posted at

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

テンプレートダイアログは以下のような機能をサポートしています。

  1. モーダル、モードレスの切り替え
  2. フラグ引数(modalflag=TrueあるいはFalse)で指定することができます。
    途中で切り替えることはできません。

  3. モーダルダイアログの終了時。OK、Cancel、☒でのクローズの判別
  4. ダイアログを閉じた場合に、ラジオボタン等の設定値を取り出して利用します。

  5. モーダルダイアログとモードレスダイアログ、それぞれの単体テストサンプル
  6. 呼び出し側のテンプレートクラス付きです。

  7. ダイアログから呼び出し側のインスタンスメソッドを呼び出し可能
  8. モードレスダイアログの表示と非表示の切り替えに使っています。

ダイアログテンプレート ソースコード

ご自由にお使いください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?