どん底から這い上がるまでの記録

どん底から這い上がりたいけど這い上がれない人がいろいろ書くブログ(主にプログラミング)

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

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()