Python PR

【図解】Pythonのメッセージボックス一覧【tkinter.messagebox】

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型)。
 右上の「✖」を押した場合の戻り値は、「キャンセル」を押した場合の戻り値と同じ。

ask〇〇の戻り値の例外

・askquestion() : 戻り値はstr型の”yes”, “no”
・askyesnocancel() : 「はい」「いいえ」「キャンセル」の3択。
キャンセルを押下した場合の戻り値はNone。

知っておくと便利な小ネタ

実行時に出現する小さいウィンドウの消し方

↑これのことです

下記コードをmessageboxの前に追加すると、小さいウィンドウが出てこなくなります。

import tkinter as tk

root = tk.Tk()
root.withdraw()

メッセージボックスを最前面に表示する方法

メッセージボックスに気づかず、「プログラム動かないな~」となることがしばしばあります。(私だけ?)

下記コードをmessageboxの前に追加すると、messageboxが最前面で固定されます。

最前面にする方法はいくつかありますが、messageboxを使う場合はこの方法が簡単かつ確実でおススメです。

import tkinter as tk

root = tk.Tk()
root.attributes("-topmost", True)