Python Code Notes

Information by python engineer

【tkinter】messageboxの使い方【Python】

f:id:vigilantPotato:20190418214806j:plain
ポップアップ画面を出してユーザーに確認や入力を促す、messageboxモジュールの概要と使い方をまとめた。


【スポンサーリンク】


messageboxの概要

messageboxは以下の表に示す8種類のメソッドが準備されている。メッセージの表示のみ(show)が3種類、メッセージの表示+質問(ask)が5種類となっている。askの場合は選択した項目に応じた戻り値が用意されている。

Messagebox 画像 戻り値
showinfo
f:id:vigilantPotato:20190418215216j:plain
ok
showwarning
f:id:vigilantPotato:20190418215230j:plain
ok
showerror
f:id:vigilantPotato:20190418215256j:plain
ok
askquestion
f:id:vigilantPotato:20190418215315j:plain
yes / no
askokcancel
f:id:vigilantPotato:20190418215335j:plain
True / False (bool)
askyesno
f:id:vigilantPotato:20190418215359j:plain
True / False (bool)
askyesnocancel
f:id:vigilantPotato:20190418215418j:plain
True / False / None (bool)
askretrycancel
f:id:vigilantPotato:20190418215445j:plain
True / False (bool)

[↑ 目次へ]


【スポンサーリンク】


messageboxの使い方

messagebox使用時は、tkinter内のmessageboxモジュールをインポートしておく必要がある。また、各メッセージボックスを生成する際に、タイトルとメッセージを設定することができる。以下、例を示す。

from tkinter import messagebox

ans = messagebox.askyesnocancel("タイトル", "メッセージ")
print(ans)

実行すると以下のメッセージボックスが表示され、選択した項目に合わせた戻り値が表示される。

f:id:vigilantPotato:20210530234952p:plain

[↑ 目次へ]


【スポンサーリンク】


応用例(ボタンとラベルの組み合わせ)

ボタンクリックでメッセージボックスを呼び出し、選択結果をラベルに表示させる例を示す。

import tkinter
from tkinter import messagebox

#ボタンクリック時に実行する関数
def show_message():
    ans = messagebox.askyesnocancel("title","message")
    var.set(ans)
    

root = tkinter.Tk()

#選択結果格納用変数
var = tkinter.StringVar()

#表示用ラベル
l = tkinter.Label(
    root,
    relief="ridge",
    width=15,
    textvariable=var,   #varを設定
)
l.pack()

#ボタン
b = tkinter.Button(
    root,
    width=15,
    text="message",
    command=show_message,   #クリック時に実行する関数
)
b.pack()

root.mainloop()

実行するとラベルとボタンが表示され、ボタンをクリックするとメッセージボックスが出現する。

f:id:vigilantPotato:20210530235011p:plain
メッセージボックスの各項目を選択すると、選択結果がラベルに表示される。
f:id:vigilantPotato:20210530235027p:plain

[↑ 目次へ]


【スポンサーリンク】