Pythonで簡単なメッセージボックスを表示する際に便利な、tkinter.messageboxについてまとめました。
「どんなデザインだっけ?」と何度も検索しなくて済むように、一覧にしています。
表を用いてデザインと返り値を分かりやすく整理しているので、備忘録としてご活用ください。
デザインと戻り値一覧
Summary
関数 | 戻り値 | 表示 |
showinfo() | OK : ‘ok’ ✖ : ‘ok’ | |
showwarning() | OK : ‘ok’ ✖ : ‘ok’ | |
showerror() | OK : ‘ok’ ✖ : ‘ok’ | |
askquestion() | はい : ‘yes’ いいえ : ‘no’ | |
関数 | 戻り値 | 表示 |
askokcancel() | OK : True キャンセル : False ✖ : False | |
askyesno() | はい : True いいえ : False | |
askyesnocancel() | はい : True いいえ : False キャンセル : None ✖ : None | |
askretrycancel() | 再試行 : True キャンセル : False ✖ : False |
※✖は右上の「✖」を押した場合の戻り値
・tkinter.messagebox.[関数名](title=~~,message=~~)で実行。
・showinfo()など「show〇〇」 の戻り値は”ok”(str型)。
右上の「✖」を押した場合も”ok”が返る。
・askyesno()など「ask〇〇」 の戻り値は、肯定的回答の場合Trueで否定的回答はFalse(bool型)。
右上の「✖」を押した場合の戻り値は、「キャンセル」を押した場合の戻り値と同じ。
知っておくと便利な小ネタ
実行時に出現する小さいウィンドウの消し方
下記コードをmessageboxの前に追加すると、小さいウィンドウが出てこなくなります。
import tkinter as tk
root = tk.Tk()
root.withdraw()
メッセージボックスを最前面に表示する方法
メッセージボックスに気づかず、「プログラム動かないな~」となることがしばしばあります。(私だけ?)
下記コードをmessageboxの前に追加すると、messageboxが最前面で固定されます。
最前面にする方法はいくつかありますが、messageboxを使う場合はこの方法が簡単かつ確実でおススメです。
import tkinter as tk
root = tk.Tk()
root.attributes("-topmost", True)