Pythonでメッセージボックスを表示する方法|tkinterで簡単GUI通知

経緯

Pythonでプログラムを実行する前に、ユーザーにメッセージを表示したい場面がありました。
たとえば「処理を開始する前に、OKボタンを押してもらう」といったインターフェースを作りたくなり、調べてみたところ、Python標準ライブラリであるtkinterにその機能があると分かりました。


tkinterのmessageboxを使う

tkinterには、簡単にメッセージボックスを表示できるmessageboxというモジュールが用意されています。
実際に使ってみたところ、わずか2行でメッセージボックスを表示できました。

以下がそのサンプルコードです。

from tkinter import messagebox
messagebox.showinfo("ループ開始", "OKを押すとループが開始します。")

このコードを実行すると、「ループ開始」というタイトルで、「OKを押すとループが開始します。」という本文を持つ情報表示用のメッセージボックスがポップアップ表示されます。


コードの解説

1行目では、tkinterモジュールの中からmessageboxだけをインポートしています。
2行目がメインの処理で、messagebox.showinfo()を使ってメッセージボックスを表示しています。
この関数の第一引数がタイトル、第二引数が本文として表示されます。

たとえば今回の例では、タイトルが「ループ開始」、本文が「OKを押すとループが開始します。」です。
関数の書式は以下のとおりです。

messagebox.showinfo("タイトル", "本文")

showinfo()以外にも、showwarning()(警告)、showerror()(エラー)など複数の種類が用意されています。


初期化を含めたより汎用的な書き方

環境によっては、tk.Tk()によるウィンドウ初期化が必要になる場合があります。
その際には、以下のように記述します。

import tkinter as tk
from tkinter import messagebox

root = tk.Tk()
root.withdraw()
messagebox.showinfo("タイトル", "本文")

このようにwithdraw()を使ってメインウィンドウを非表示にすることで、メッセージボックスだけを表示することができます。


使用目的とまとめ

私の場合は、ループ処理を実行する前に「本当に開始してよいか?」とユーザーに確認する意味で、一度クリックを挟みたかったため、このようなメッセージボックスを採用しました。
処理をいきなり始めるのではなく、ワンクッション置くことでユーザーの操作性も向上します。

この方法はPythonの標準機能だけで実現できるため、外部ライブラリのインストールも不要で、非常に手軽です。
GUIを少しだけ加えたいときなどに役立つ機能ですので、ぜひ一度試してみてください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。