問
Tkinterを使ってチェックボックスを持ったウィンドウを作成して、チェックボックスにチェックを入れると選択されたオプションが表示される「Submit」ボタンを作成してください。
回答コード
import tkinter as tk
def on_submit_button_click():
selections = [item for item, value in var.items() if value.get() == 1]
print("Selections:", selections)
root = tk.Tk()
var = {}
check_button1 = tk.Checkbutton(root, text="Option 1", variable=var.setdefault("Option 1", tk.IntVar()))
check_button1.pack()
check_button2 = tk.Checkbutton(root, text="Option 2", variable=var.setdefault("Option 2", tk.IntVar()))
check_button2.pack()
button = tk.Button(root, text="Submit", command=on_submit_button_
コード解説
“Import tkinter as tk” は Tkinter ライブラリをインポートし、便宜上 “tk” と改名します。
“def on_submit_button_click():” は、送信ボタンがクリックされたときに呼び出される関数を定義します。この関数は、対応する変数が1(チェック済み)または0(オフ)に設定されているかどうかを確認することにより、チェックボタンによって行われた選択を収集します。
“ルート= tk。Tk()” は Tkinter アプリケーションのルートウィンドウを作成します。
“var = {}” は、各チェック ボタンの IntVar 変数を格納する空のディクショナリを作成します。
“check_button1 = tk.Checkbutton(root, text=”Option 1”, variable=var.setdefault(“Option 1″, tk.IntVar()))” は、”オプション 1″ というテキストを含むチェック ボタンを作成します。変数オプションは、ディクショナリ “var” に作成された新しい IntVar に設定され、キーは “Option 1” になります。
“check_button1.pack()” はウィンドウにチェックボタンを追加します。
“ボタン= TK。Button(root, text=”Submit”, command=on_submit_button_click)” は、テキスト “Submit” と、クリックされたときに関数 “on_submit_button_click” を呼び出すコマンドを持つボタンを作成します。
“button.pack()” はウィンドウにボタンを追加します。
“root.mainloop()” は Tkinter イベントループを開始してウィンドウを表示し、ユーザイベントを処理します。
イベントループって何?
Tkinterで毎回出てくるイベントループ
Tkinterではイベントドライビングなアプリケーションを作成することができます。
このアプリケーションは、ユーザーからの入力、ウィンドウのリサイズなど、外部の出来事を受け取ることができます。
これらのイベントを処理するためには、イベントループが必要です。
イベントループは、常にイベントを監視していて、新しいイベントが発生するとそれを処理することができます。このイベントループを提供するのがroot.mainloop()です。
イベントドライビングとは
プログラムのがユーザーのキーを押す・マウスをクリックするといったアクションやセンサー出力、または他のプログラムからのメッセージなどのイベントによって決定されるプログラミングパラダイムです。
イベントドライビングでは、プログラムはイベントが発生するのを待機し、そのイベントに応答します。プログラムは、停止または終了するまで、イベントの待機と応答のこのパターンを続行します。
イベントループを終えるには
Tkinterでイベントループを終了するには、
root.quit()
これにより、Tkinter GUIアプリケーションのメインイベントループが終了し、プログラムが終了します。
コメント