tkinter

Python tkinter 006

リストボックスの使用

前回の続きです。
今回はtkinterを使用したリストボックスについて見ていきます。

まずリスボックスの要素ですがこれはtkiniterのStringVar()メソッドを使用して作成します。
使用方法はStringVar(“タプル型 or list”)でリストの項目を生成し、リストボックスのオプション”listvariable”に設定します。

また、複数選択可能なリストボックスを生成する場合はオプションにselectmode=”multiple”を指定します
オプションには他にも様々な種類がありますが次回以降で説明していきます。

リストボックスの選択中の項目は次の方法で取得できます。

listbox.get(listbox.curselection()[0])
→listbox.curselection()は選択中の項目のインデックスをListで返します。複数選択の場合は選択中の全ての項目の
 インデックスを返します。

import tkinter as tk

def btn_click():
    label["text"] = 'ボタンが押されました。'

def btn_click2():
    index = listbox1.curselection()[0] #選択中項目の取得
    print(listbox1.get(index))

def btn_click3():
    print(listbox_m.curselection()) #選択項目全取得(インデックス)
    

root = tk.Tk()
root.geometry("400x300")

#####002 テキストボックス#####
textbox = tk.Entry(width=20)
textbox.pack() #配置
textbox.insert(tk.END, "文字の入力")
print(textbox.get()) #テキストボックスの入力値取得
textbox.delete(0,tk.END)


#####003 ラベル#####
label = tk.Label(text='ラベル')
label.pack()
label["text"] = 'ラベル!' #ラベルの値変更

#####004 ボタン#####
btn = tk.Button(text='ボタン',command=btn_click)
btn.pack()

#####005 チェックボックス#####
chk1 = tk.BooleanVar() 
chk1.set(True)
chk2 = tk.BooleanVar() 
chk2.set(False)
chk3 = tk.BooleanVar() 
chk3.set(True)

chkbox1 = tk.Checkbutton(text='check1',variable=chk1)
chkbox1.pack()

chkbox2 = tk.Checkbutton(text='check2',variable=chk2)
chkbox2.pack()

chkbox3 = tk.Checkbutton(text='check3',variable=chk3)
chkbox3.pack()

print(chk1.get())
print(chk2.get())
print(chk3.get())

#####006 リストボックス#####
var = tk.StringVar(value=('test','test2','test3','test4'))
listbox1 = tk.Listbox(listvariable=var)
listbox1.pack()
btn2 = tk.Button(text='選択項目の取得',command=btn_click2)
btn2.pack()

listbox_m = tk.Listbox(listvariable=var,selectmode="multiple")
listbox_m.pack()
btn3 = tk.Button(text='選択項目の取得(複数)',command=btn_click3)
btn3.pack()


root.mainloop()