Python ボタンのクリックイベントを取得する

Pythonではボタンを作り、クリックイベントを作ることができます。

画面(ウィンドウ)を作ったり、ボタンを作ったり、GUIのアプリケーションを作成できます。

今回は、Pythonでボタンを作成し、ボタンのイベントを作成する方法を解説します。

ボタンのクリックイベントを取得する

tkinter

PythonでGUIを操作するには、「tkinter」モジュールを使います。

「tkinter」は「Tool Kit Interface」のことで、Python標準のGUIアプリケーションを作成するモジュールです。

 

ボタンのイベント作成

# clickイベント
def btn_click():
    print('テスト')
import tkinter

# 画面作成
tki = tkinter.Tk()
tki.geometry('300x200')
tki.title('ボタンイベントの検証')

# ボタン
btn = tkinter.Button(tki, text='計算', command=btn_click)
btn.place(x=140, y=170)

ボタンのイベントは関数化します。ここでは「btn_click」を用意しました。この中にイベントの処理を記述します。

ボタンは「tkinter.Button」で生成します。ボタンの名前は「text=」で指定し、イベントは「command=」で指定します。

ボタンがおされたら、「btn_click」という関数を呼び出す処理を作成しました。

作成した画面

上のコードで作成したボタンつきの画面はこちらです。

 

ボタンのイベント処理全体

ここではボタンがクリックされたら、イベントで10進数を16進数へ変換して表示する画面を作成します。ボタンだけでなく、テキストボックスやラベルもふくめて画面全体を網羅してみます。

# clickイベント
def btn_click():
    # テキスト取得
    num = int(txt_1.get())
    # 16進数へ変換してテキストボックスへセット
    txt_2.insert(0, hex(num))

ここでは事前に10進数→16進数へ変換する関数を作っておきます。

10進数、16進数用のテキストボックスを2つ用意します(後述)。10進数のテキストボックスの値を 「txt_1.get()」で取得し、int型に変換します。

さらに「hex」で16進数に変換した値を「txt_2.insert」で16進数のテキストボックスへセットします。

これで関数は完成です。次はGUIの画面を作成します。

import tkinter

# 画面作成
tki = tkinter.Tk()
tki.geometry('300x200')
tki.title('ボタンイベントの検証')

# ラベル
lbl_1 = tkinter.Label(text='10進数')
lbl_1.place(x=30, y=70)
lbl_2 = tkinter.Label(text='16進数')
lbl_2.place(x=30, y=100)

# テキストボックス
txt_1 = tkinter.Entry(width=20)
txt_1.place(x=90, y=70)
txt_2 = tkinter.Entry(width=20)
txt_2.place(x=90, y=100)

# ボタン
btn = tkinter.Button(tki, text='計算', command=btn_click)
btn.place(x=140, y=170)

# 画面をそのまま表示
frm.mainloop()

ボタンは「計算」ボタンを用意しました。「command=btn_click」でボタンがクリックされると、「btn_click」を実行します。

テキストボックスの詳細な使い方はこちらを参照してください。

参考ページPython テキストボックスの作成、クリア、取得、セット(tkinter・Entry)

作成した画面

こちらが実際に作成したGUIの画面です。計算ボタンをおすと、10進数で入力された数値を16進数に変換して表示することができました。

Pythonで「tkinter」を使ってボタンイベントを作成することができました。

参考ページhttps://docs.python.jp/3/library/tk.html

以上、Pythonで「tkinter」を使ってボタンイベントを作成する方法でした。

コメント