今回は、tkinterでコンボボックスを使う方法を記します。
Pythonのtkinterでボタンを出す方法
from tkinter import * from tkinter import ttk #-------------------------------- #コンボボックスを押した時の反応用関数 def select_cb(event): print(txt.get()) #-------------------------------- win = Tk() win.title('test') #-------------------------------- #コンボボックス txt = StringVar() cb = ttk.Combobox(win, textvariable=txt) cb.bind('<<ComboboxSelected>>' , select_cb) cb['values']=('コンボテキスト1','コンボテキスト2','コンボテキスト3') cb.set("コンボテキスト2") cb.grid(row=0, column=0) cb.grid_configure(padx=5, pady=5) #-------------------------------- win.mainloop() print(txt.get())
コンボボックスが入ってるウインドウを作成します。
表示はこのような物になります。
そしてコンボボックスを選択して展開すると
こうなります。
動作としてはコンボボックスで切り替えた文字列をprint(txt.get())で表示し、ウインドウを閉じた時もprint(txt.get())で表示させます。
tkinterのウインドウにコンボボックスを設定する
tkinterのウインドウにコンボボックスを追加します。
tkinterで作ったコンボボックスを押した時の動作を作成
def select_cb(event): print(txt.get())
tkinterのウインドウに設置したコンボボックスの選択を変えた時に動作する関数を作ります。
引数無し、返り値なしの関数を作っておきます。
tkinterのウインドウにコンボボックスのオブジェクトを作る
cb = ttk.Combobox(win, textvariable=txt)
コンボボックスのオブジェクト=ttk.Combobox( tkinterのオブジェクト , textvariable=コンボボックスの結果を受け取る文字列 )
コンボボックスのオブジェクトを作成します。
コンボボックスのオブジェクトに操作された時に動作する関数を追加する
cb.bind('<<ComboboxSelected>>' , select_cb)
コンボボックスのオブジェクト.bind(‘<<ComboboxSelected>>’ , コンボボックスの操作を実行する関数名 )
コンボボックスが操作された時に動作する関数を設定します。
コンボボックスの中身を設定する
cb['values']=('コンボテキスト1','コンボテキスト2','コンボテキスト3')
コンボボックスのオブジェクト[ コンボボックスに入れる文字列1 , コンボボックスに入れる文字列2 , … ]
コンボボックスに入れる選択する文字列を設定します。
コンボボックスの初期選択項目を設定する
cb.set("コンボテキスト2")
コンボボックスのオブジェクト.set( コンボボックス内にある文字列と同じ文字 )
すでにコンボボックスの中身にある文字と同じ文字を指定する事で初期に選択している事に出来ます。
その他
ボタンのウインドウ内の位置や幅などはPythonのGUIのtkinterを使う方法2 ラベルとエデットボックスの設置方法を参考にしてください。