Python 入門

ホーム > Tkinter による GUI プログラミング > Combobox - Tkinter のウィジェット

Combobox - Tkinter のウィジェット

ここでは tkinter の基本ウィジェットのひとつである ttk.Combobox の使い方を示します。

コンボボックス Combobox はドロップダウンリストと、Entry (テキストボックス) の組み合わせボックスです。 自由に入力できる他、決められた値をドロップダウンリストから選択することもできます。

tkinter ttk.Combobox

ここでは選択項目が変わったときの内容を出力するのと、ボタンを押したときに、その時点で選択されている値を表示(そして終了)しています。

from tkinter import *
from tkinter import ttk

def button1_clicked():
    print('v1 = %s' % v1.get())
    quit()

def cb_selected(event):
    print('v1 = %s' % v1.get())

if __name__ == '__main__':
    root = Tk()
    root.title('Combobox 1')
    
    # Frame
    frame1 = ttk.Frame(root, padding=10)
    frame1.grid()
    
    # Combobox
    v1 = StringVar()
    cb = ttk.Combobox(frame1, textvariable=v1)
    cb.bind('<<ComboboxSelected>>', cb_selected)
    
    cb['values']=('Foo', 'Bar', 'Baz')
    cb.set("Foo")
    cb.grid(row=0, column=0)
    
    #Button
    button1 = ttk.Button(frame1, text='OK', command=button1_clicked)
    button1.grid(row=0, column=1)
    
    root.mainloop()

Combobox の値は textvariable 属性で指定した変数にその都度格納されます。

Combobox の選択が変更したときのコールバックは bind メソッドを用いて、 <<ComboboxSelected>> 仮想イベントにコールバック関数をアタッチします。

コールバックメソッドは Event オブジェクトを受けとるので、ひとつ引数を受けとるようにしておきます。

ホーム > Tkinter による GUI プログラミング > Combobox - Tkinter のウィジェット