python Tkinter 入門 サンプルコード 2

Python

python 標準ライブラリのTkinterを使用して、デスクトップアプリを作ってみたいと思います
ファイルを実行すればウインドウが開き、アプリケーションとして様々な機能を持たせることができます

第2回としてボタンに機能を持たせていきます

第1回の記事はこちら

・環境

windows 11
python 3.12.2

・ボタンクリック時のイベント処理

まずボタンクリックしたときに発生するイベントで、簡単なものを書いてみます

import tkinter as tk 

root = tk.Tk()          
root.title("sample_App")
root.geometry("600x400")

def click(): # クリックされたときの処理
    button_1['text'] = "2" # button_1のtextを"2"に変える

button_1 = tk.Button(frame1, text="1", font=("Arial", 20), padx=30, pady=30, command=click)
# クリックされたときのcommandに def clickを呼び出す
button_1.grid(row=0, column=0)

root.mainloop()

ボタンがクリックされたときに関数 def click() が呼び出され、button_1のtextを”2″に変える が実行されます

次に引数を指定してイベントを発生させてみます
メッセージボックスを表示させるために messagebox をimportしておきます

import tkinter as tk
from tkinter import messagebox #メッセージボックスをimport

root = tk.Tk()          
root.title("sample_App")
root.geometry("600x400")

def btn_click(msg): #ボタンが押されたときの処理
    messagebox.showinfo('メッセージ', msg + "がクリックされました" )
    #メッセージボックスをタイトル'メッセージ' 内容 msg で表示

button_1 = tk.Button(root, text="1", font=("Arial", 20), padx=30, pady=30, command=lambda:btn_click('1'))
# クリックされたときのcommandに lambda関数でbtn_clickを引数 1 を呼び出す
button_1.grid(row=0, column=0)

root.mainloop()

クリックされたときにlambda関数で、btn_click関数を引数 “1” で呼び出します
btn_click関数ではメッセージボックスを表示させます

次にラベルを表示してみます

import tkinter as tk

root = tk.Tk()          
root.title("sample_App")
root.geometry("600x400")

button_1 = tk.Button(root, text="1", font=("Arial", 20), padx=30, pady=30)
button_1.grid(row=0, column=0)

# ラベル設置
label_1 = tk.Label(root, text='ラベル', font=("Arial", 20), padx=30, pady=30)
label_1.grid(row=1, column=0)

root.mainloop()

とりあえず、”ラベル”という表示のラベルが追加されました
これをボタンをクリックすることで変化させていきます

import tkinter as tk

root = tk.Tk()          
root.title("sample_App")
root.geometry("600x400")

def btn_click(num): #ボタンがクリックされたとき
    label_1['text'] = num + "ボタンをクリックしました"
    # ラベルの表示を変える

button_1 = tk.Button(root, text="1", font=("Arial", 20), padx=30, pady=30, command=lambda:btn_click('1'))
# クリックされたときのcommandに lambda関数でbtn_clickを引数 1 を呼び出す
button_1.grid(row=0, column=0)

label_1 = tk.Label(root, text="ラベル", font=("Arial", 20), padx=30, pady=30)
label_1.grid(row=1, column=0)

root.mainloop()

ボタンをクリックすることでラベルの内容を変化させることができました

次回はさらに複雑な処理を書いていこうと思います

コメント