複数の選択肢から何かを選択するGUIをつくる時は、リストボックスが便利です。
今回は、リストボックスの使い方を簡単なサンプルコードをもとに説明します。
準備
まずはウィンドウを作成しましょう。
ウィンドウの作成方法がわからない方は、下の記事を参考にしてください。
Listboxで選択したものをLabelで表示する
サンプルコード
import tkinter as tk
main_win = tk.Tk()
main_win.title("テスト用ウィンドウ")
main_win.geometry("400x300")
def select_list():
selected_index = listbox.curselection()
selected_module = listbox.get(selected_index)
label = tk.Label(text=selected_module)
label.pack()
list = ("AAA", "BBB", "CCC", "DDD", "EEE")
list_var = tk.StringVar(value=list)
listbox = tk.Listbox(main_win, height=5, listvariable=list_var)
listbox.bind('<<ListboxSelect>>', lambda e: select_list())
listbox.pack()
main_win.mainloop()
実行結果
解説
実装したサンプルコードは表示されているリストボックスのどれかをマウスでクリックすると、選択したものが表示されるコードになっています。
リストボックスに表示する選択肢は、tkinter.StrngVar()を使い、オプションのlistvariableで設定します。
この他にも.insert()を使用して選択肢を1つずつ追加する方法もあります。
リストボックスの選択肢をクリックしたときの動作は、.bind()を使って、動作させたい関数と紐づけします。
今回のサンプルでは、クリックすると、select_list()が呼び出されてその中の処理が実行される形にしています。
リストボックスのどれがクリックされたかは、 .curselection() で取得することができます。
ただし、取得できるのはインデックスなので、その内容を取得したい場合は、さらに.get()を使ってクリックした選択肢の内容を取得する必要があります。
コメント