チェックボタンから関数を呼び出そう
今回はチェックボタンから関数を呼び出してみましょう。
チェックボタンを3つ用意して、3つともチェックされるとラベルの色が変わる処理を作ります。
関数の呼び出しは、Checkbuttonウィジェットの commandオプションを使います。
チェックボタンから関数を呼び出すプログラム
チェックボタンから関数を呼び出すプログラムは、以下のようになります。
今回のプログラムでは、チェックボタンがオフの時は「OFF」、オンの時は「ON」と表示します。
関数func()の中でTkinter変数の値を確認して、3つともONになっていたらラベルの色を反転させます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
### インポート import tkinter ### 色反転関数 def func(): if value1.get() == "ON" and value2.get() == "ON" and value3.get() == "ON": label1.config(fg="lime", bg="red") label2.config(fg="lime", bg="red") label3.config(fg="lime", bg="red") else: label1.config(fg="red", bg="lime") label2.config(fg="red", bg="lime") label3.config(fg="red", bg="lime") ### メイン画面作成 main = tkinter.Tk() ### 画面サイズ設定 main.geometry("640x400") ### 画面色設定 main.configure(bg="lime") ### フレーム frame = tkinter.Frame(master=main) ### ラベル表示変数 value1 = tkinter.StringVar() value2 = tkinter.StringVar() value3 = tkinter.StringVar() ### チェックボタン作成 checkbutton1 = tkinter.Checkbutton(master=main, text="チェックボタン1", font=("HG丸ゴシックM-PRO",24), fg="red", bg="lime", height=2, width=15, activeforeground="red", activebackground="lime", offvalue="OFF", onvalue="ON", variable=value1, command=func) checkbutton2 = tkinter.Checkbutton(master=main, text="チェックボタン2", font=("HG丸ゴシックM-PRO",24), fg="red", bg="lime", height=2, width=15, activeforeground="red", activebackground="lime", offvalue="OFF", onvalue="ON", variable=value2, command=func) checkbutton3 = tkinter.Checkbutton(master=main, text="チェックボタン3", font=("HG丸ゴシックM-PRO",24), fg="red", bg="lime", height=2, width=15, activeforeground="red", activebackground="lime", offvalue="OFF", onvalue="ON", variable=value3, command=func) ### チェックボタン初期化 value1.set("OFF") value2.set("OFF") value3.set("OFF") ### チェックボタン配置 checkbutton1.pack() checkbutton2.pack() checkbutton3.pack() ### ラベル作成 label1 = tkinter.Label(master=frame, textvariable=value1, font=("HG丸ゴシックM-PRO",36), fg="red", bg="lime", height=2, width=4) label2 = tkinter.Label(master=frame, textvariable=value2, font=("HG丸ゴシックM-PRO",36), fg="red", bg="lime", height=2, width=4) label3 = tkinter.Label(master=frame, textvariable=value3, font=("HG丸ゴシックM-PRO",36), fg="red", bg="lime", height=2, width=4) ### フレーム配置 frame.pack(pady=20, side="bottom") ### ラベル配置 label1.pack(side="left") label2.pack(side="left") label3.pack(side="left") ### イベントループ main.mainloop() |
プログラムを実行すると、以下のような画面が表示されます。
チェックボタンを3つともチェックすると、ラベルの色が反転します。