ユーニックス総合研究所

  • home
  • archives
  • python-button-ga-osaretara

Pythonでボタンが押されたらメッセージボックスを表示する【Tkinter】

  • 作成日: 2023-06-20
  • 更新日: 2023-12-24
  • カテゴリ: Python

Pythonでボタンが押された場合の処理

PythonのTkinterでボタンが押されたら何かを処理したい時があります。
そういう時はtk.Buttoncommand引数に実行したい関数を指定します。

import tkinter as tk  

def my_func():  
    print('クリックされました')  

root = tk.Tk()  
btn = tk.Button(root, text='Click!', command=my_func)  
btn.pack()  

root.mainloop()  

上記のコードを実行するとウィンドウにボタンが表示されます。
ボタンをクリックすると端末に「クリックされました」と表示されます。

ボタンが押されたらメッセージボックスを表示する

Tkinterにはmessageboxというモジュールがあります。
これを使うとメッセージボックスを表示することが可能です。

ボタンが押された場合にメッセージボックスを表示するには以下のようなコードを書きます。

import tkinter as tk  
from tkinter import messagebox  

def my_func():  
    messagebox.showinfo('OK', 'クリックされました')  

root = tk.Tk()  
btn = tk.Button(root, text='Click!', command=my_func)  
btn.pack()  

root.mainloop()  

上記のコードを実行するとウィンドウにボタンが表示されます。
ボタンをクリックすると「クリックされました」というメッセージのメッセージボックスが表示されます。

messagebox.showinfo()は第1引数にメッセージボックスのタイトル、第2引数にメッセージを指定します。
showinfoは汎用的な情報を表示するためのメッセージボックスです。

ボタンが押されたらラベルのテキストを取得して表示する

ボタンと一緒にラベルを配置してボタンがクリックされたらラベルのテキストを取得したいとします。
そういう場合は以下のようなコードを書きます。

import tkinter as tk  
from tkinter import messagebox  

def my_func():  
    messagebox.showinfo('OK', label.cget('text'))  

root = tk.Tk()  
label = tk.Label(root, text='こんにちは')  
label.pack()  
btn = tk.Button(root, text='Click!', command=my_func)  
btn.pack()  

root.mainloop()  

ラベルの配置はtk.Labelを使います。
ラベルのテキストはtext引数に指定します。

label.cget('text')でラベルのテキストの値を取得できます。
これでテキストを取得してmessagebox.showinfo()で表示します。

ボタンが押されたらウィンドウを閉じる

ボタンが押されたときにウィンドウを閉じるには以下のようなコードを書きます。

import tkinter as tk  
from tkinter import messagebox  

def my_func():  
    root.destroy()  

root = tk.Tk()  
btn = tk.Button(root, text='Click!', command=my_func)  
btn.pack()  

root.mainloop()  

root.destroy()でウィンドウを閉じています。
上記のコードではボタンが押されたらウィンドウが終了します。