PythonのGUIのtkinterを使う方法6 リストボックスとスクロールバーの設置方法

今回は、tkinterでリストボックスとスクロールバーを使う方法を記しておきます。



Pythonのtkinterでボタンを出す方法

from tkinter import *
from tkinter import ttk

#----------------------------------------
#リストボックスを押した時の反応用関数
def select_lb(event):
    for i in lb.curselection():
        print(str(i)+"番目を選択中")
    print("")
#----------------------------------------

win = Tk()
win.title('test')

#----------------------------------------
#リストボックス
listarray = ('項目1', '項目2', '項目3', '項目4', '項目5', '項目6', '項目7', '項目8', '項目9')
txt = StringVar(value=listarray)
lb= Listbox(win, listvariable=txt,width=30,height=6)
lb.bind('<<ListboxSelect>>', select_lb)
lb.grid(row=0, column=1)
lb.configure(selectmode="extended")
#----------------------------------------

#----------------------------------------
#スクロールバー
scrollbar = ttk.Scrollbar(win,orient=VERTICAL,command=lb.yview)
scrollbar.grid(row=0,column=2,sticky=(N,S))
#----------------------------------------

win.mainloop()

リストボックスとスクロールバーが入ってるウインドウを作成します。

このサンプルの場合表示はこのような物になります。

そして複数選択可能リストボックスとスクロールできるウインドウが表示されます。

動作としてはリストボックスで選択した項目の番号を表示させます。

tkinterのウインドウにリストボックスを設定する

tkinterのウインドウにリストボックスを追加します。

tkinterで作ったリストボックスを押した時の動作を作成

def select_lb(event):
    for i in lb.curselection():
        print(str(i)+"番目を選択中")
    print("")

tkinterのウインドウに設置したリストボックスの選択を変えた時に動作する関数を作ります。
引数無し、返り値なしの関数を作っておきます。
for i in lb.curselection():でリストボックス内で現在選択されている項目を取得します。

tkinterのウインドウにリストボックスのオブジェクトを作る

listarray = ('項目1', '項目2', '項目3', '項目4', '項目5', '項目6', '項目7', '項目8', '項目9')
txt = StringVar(value=listarray)
lb= Listbox(win, listvariable=txt,width=30,height=6)

リストボックスのオブジェクト=Listbox( tkinterのオブジェクト , width=横幅 , height=縦幅 )

リストボックスのオブジェクトを作成します。

リストボックスのオブジェクトに操作された時に動作する関数を追加する

lb.bind('<<ListboxSelect>>', select_lb)

リストボックスのオブジェクト.bind(‘<<ListboxSelect>>’ , リストボックスの操作を実行する関数名 )

リストボックスが操作された時に動作する関数を設定します。

リストボックスの選択タイプを設定する

lb.configure(selectmode="extended")

リストボックスのオブジェクト( selectmode=”選択タイプを指定する文字列” )

リストボックスの単数選択か複数選択かを設定する。

browse 単数選択・ドラックで選択も変わる
single 単数選択・ドラックで選択は変わらない
multiple 複数選択・クリックでON/OFFが切り替わる
extended 複数選択・ドラックで複数選択、CTLRキーを押しながらでも複数選択

tkinterのウインドウにリストボックスと連動するスクロールバーを設定する

tkinterのウインドウにスクロールバーを追加します。

スクロールバーを作成する

scrollbar = ttk.Scrollbar(win,orient=VERTICAL,command=lb.yview)

スクロールバーのオブジェクト=ttk.set( tkinterのオブジェクト , orient=VERTICAL , command=リストボックスのy軸 )

先に作ったリストボックスのY軸を結びつけてスクロールバーを作成します。

その他

ボタンのウインドウ内の位置や幅などはPythonのGUIのtkinterを使う方法2 ラベルとエデットボックスの設置方法を参考にしてください。

スポンサーリンク







シェアする

  • このエントリーをはてなブックマークに追加

フォローする

関連記事



スポンサーリンク