tkinterでのGUIプログラミング
今回はリストボックスの項目をボタンを押すことで増やしていくプログラムをまとめる。
import tkinter as tk
import tkinter.ttk as ttk
root = tk.Tk()
root.geometry('300x300')
def select_now(event):
for i in lb.curselection(): #現在選択されている項目を取得
print(str(i)+'番目を選択中')
print('')
#リストボックス
listarray = ['項目1', '項目2', '項目3', '項目4']
txt = tk.StringVar(value=listarray) #文字列なのでStringVar()でオブジェクトを生成
lb = tk.Listbox(root, listvariable=txt, width=28, height=15)
lb.bind('<<ListboxSelect>>', select_now) #項目が選択されたときの処理
#スクロールバーの生成・配置
scrollbar = ttk.Scrollbar(root, orient=tk.VERTICAL, command=lb.yview)
scrollbar.pack(fill='y', side='right')
#ボタンの生成・配置
button_page = ttk.Button(root, text='+', width=4)
button_page.bind('<1>', lambda event: lb.insert(tk.END, '新規'))
button_page.pack()
lb.pack() #リストボックス配置
root.mainloop()
Listbox(object, listvaliable)
...objectに値listvaliableのlistboxを生成する
オプションのlistvariable
にはVariable オブジェクトを指定する。サブクラス StringVar, IntVar, DoubleVar, BooleanVarの中から選び、今回は文字列なのでStringVar()
でオブジェクトを生成。
StrinVar 文字列 ex.)'hello'
IntVar 整数 ex.)12345
DoubleVar 実数 ex.)1.2345
BooleanVar 論理値 ex.)True False
Listbox.insert(tk.END, value)
...リストボックスの項目末尾にvalueを挿入する
参考文献
https://ameblo.jp/hitochan007/entry-12011753728.html
https://toolmania.info/post-13014/