メッセージボックスを使ってみる

tkinterに用意されているメッセージボックスを使ってみます。

はじめに、messageboxをインポートします。

from tkinter import messagebox

メッセージボックスは7つのタイプが用意されています。

使い方は、

  messagebox.func(title, message)

  • func - 関数
  • title - ボックスのタイトル
  • message - ボックスに表しされるメッセージ

showinfo

res = messagebox.showinfo("title", "message")
print("showinfo", res)

f:id:pytry3g:20180607200311p:plain

showwarning

res = messagebox.showwarning("title", "message")
print("showwarning", res)

f:id:pytry3g:20180607200331p:plain

showerror

res = messagebox.showerror("title", "message")
print("showerror", res)

f:id:pytry3g:20180607200349p:plain

askquestion

resには、はいを押せばyes、いいえを押せばnoが入ります。

res = messagebox.askquestion("title", "message")
print("askquestion", res)

f:id:pytry3g:20180607200412p:plain

askokcancel

resには、OKを押せばTrueがキャンセルを押せばFalseが入ります。

res = messagebox.askokcancel("title", "message")
print("askokcancel", res)

f:id:pytry3g:20180607200434p:plain

askyesno

resには、はいを押せばTrue、いいえを押せばFalseが入ります。

res = messagebox.askyesno("title", "message")
print("askyesno", res)

f:id:pytry3g:20180607200454p:plain

askretrycancel

resには、再試行を押せばTrue、キャンセルを押せばFalseが入ります。

res = messagebox.askretrycancel("title", "message")
print("askretrycancel", res)

f:id:pytry3g:20180607200512p:plain

サンプルプログラム

最後にサンプルプログラムを載せておきます。

ウィンドウを立ち上げて2つのボタンcheckとquitを配置しています。

checkボタンを押すと、メッセージボックスが表示されて再試行するか確認されます。

再試行を押すとメッセージボックスが再び表示され、キャンセルを押すとメッセージボックスは閉じるプログラムです。

import tkinter as tk
from tkinter import messagebox


def retry():
    res = messagebox.askretrycancel("確認", "やり直しますか?")
    if res:
        retry()

root = tk.Tk()
root.geometry("{}x{}+{}+{}".format(100, 100, 300, 300))
button = tk.Button(root, text="check", relief="groove", command=retry)
button.pack()
quit = tk.Button(root, text="quit", relief="groove", command=root.quit)
quit.pack()
root.mainloop()