Python
 Computer >> コンピューター >  >> プログラミング >> Python

PythonのTkinterでポップアップダイアログを表示する方法【messagebox活用ガイド】

Tkinterは、GUIベースのアプリケーションを作成・開発するためのPython標準ライブラリです。Tkinterを使えばアプリケーションを構築し、さまざまなウィジェットを追加することで、よりインタラクティブな画面を作ることができます。

ここでは、アプリケーション内でポップアップダイアログを表示する方法を紹介します。この場合に役立つのが、tkinterに組み込まれているmessageboxモジュールです。messageboxを使うと、エラーメッセージ、情報ボックス、確認ダイアログなど、さまざまな種類のダイアログボックスを簡単に表示できます。

サンプルコード

以下の例では、クリックすると画面上にポップアップメッセージを表示するボタンを作成しています。

# 必要なライブラリをインポート
from tkinter import *
from tkinter import ttk
from tkinter import messagebox

# tkinterフレームのインスタンスを作成
win=Tk()

# ウィンドウサイズを設定
win.geometry("700x250")

# ポップアップメッセージボックスを表示する関数を定義
def on_click():
    messagebox.showinfo("Message", "Hey folks!")

# ラベルウィジェットを追加
Label(win, text="Click the button to open a popup", font=('Georgia 13'))

# ポップアップダイアログを開くボタンを作成
ttk.Button(win, text="Open Popup", command=on_click).pack(pady=30)

win.mainloop()

実行結果

上記のコードを実行すると、ダイアログボックスを開くためのボタンが配置されたウィンドウが表示されます。

PythonのTkinterでポップアップダイアログを表示する方法【messagebox活用ガイド】

ボタンをクリックすると、画面上にポップアップダイアログボックスが表示されます。

PythonのTkinterでポップアップダイアログを表示する方法【messagebox活用ガイド】

messageboxで使える主なダイアログの種類

messageboxモジュールには、用途に応じて複数のダイアログ表示関数が用意されています。

  • showinfo(): 情報を伝えるためのダイアログ(「i」アイコン付き)
  • showwarning(): 警告を通知するダイアログ(警告アイコン付き)
  • showerror(): エラーを通知するダイアログ(エラーアイコン付き)
  • askquestion() / askyesno(): 「はい/いいえ」を選択させる確認ダイアログ。戻り値でユーザーの選択を受け取れます
  • askokcancel(): 「OK/キャンセル」を選択させる確認ダイアログ

たとえば処理の続行確認を行いたい場合は、askyesno()の戻り値をif文で判定することで、ユーザーの回答に応じた分岐処理を簡単に実装できます。

  1. Python Tkinterでキャンバス上の画像を中央に配置する方法

    Tkinterを使ってGUIアプリケーションを開発している際、Tkinterのキャンバス(Canvas)上に画像を読み込みたいケースはよくあります。本記事では、その画像をキャンバスの中央に配置する方法を解説します。anchorパラメータとはデフォルトでは、キャンバスは画像を自身の幅と高さに従って配置します。しかし、anchor(アンカー)パラメータに方向の値を渡すことで、画像の位置を任意の方向(N:北、S:南、E:東、W:西、NS、EWなど)に操作できます。アンカーは画像関数と一緒に呼び出されるパラメータで、キャンバス内における画像の方向や位置を定義します。このanchorパラメータを活用すれ

  2. Python Tkinterでルートウィンドウを非表示・破棄する2つの方法

    Tkinterアプリケーションのテスト中に、デフォルトのウィンドウやフレームを一時的に隠したい、あるいは完全に閉じたいという場面に遭遇することがあります。Tkinterでは、withdraw()メソッドによる「非表示」と、destroy()メソッドによる「破棄」の2つのアプローチが用意されています。mainloop()とウィンドウのライフサイクルmainloop()は、外部イベントによってウィンドウが閉じられるまで、Tkinterアプリケーションを実行し続ける役割を担います。このメインループが動作している間、ウィンドウは画面上に表示され続けます。ウィンドウを完全に破棄(終了)したい場合は、de