※当サイトのリンクには広告が含まれています。

【Tkinter】Listboxで複数の選択肢から選択するリストボックスを実装する【PythonでGUIアプリ開発】

Tkinter

複数の選択肢から何かを選択する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()を使ってクリックした選択肢の内容を取得する必要があります。

Tkinter
スポンサーリンク
toniemonをフォローする

コメント