3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

リストボックスの項目追加

Last updated at Posted at 2019-07-08

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()

実行すると、
listbox1_2.png   listbox2_2.png

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/

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?