今回は、Pythonで項目の複数の条件の中から1つを選ぶラジオボタンを付ける方法を記します。
Pythonのtkinterでラジオボタンを出す方法
from tkinter import * from tkinter import ttk #ラジオボタンを押した時の反応用関数 def rb1_clicked(): print(flg1.get()) def rb2_clicked(): print(flg2.get()) #---------------------- win = Tk() win.title('test') #---------------------- #ラジオボタン作成 #グループA用変数 flg1 = StringVar() flg1.set('1') #グループB用変数 flg2 = StringVar() #ラジオ1(グループA) rb1 = ttk.Radiobutton(win,text='ラジオボタン1',value=0,variable=flg1,command=rb1_clicked) rb1.grid(row=1,column=1) #ラジオ2(グループA) rb2 = ttk.Radiobutton(win,text='ラジオボタン2',value=1,variable=flg1,command=rb1_clicked) rb2.grid(row=1,column=2) rb2.state(['disabled']) #ラジオ3(グループA) rb3 = ttk.Radiobutton(win,text='ラジオボタン3',value=2,variable=flg1,command=rb1_clicked) rb3.grid(row=1,column=3) #ラジオ4(グループB) rb4 = ttk.Radiobutton(win,text='ラジオボタン4',value=0,variable=flg2,command=rb2_clicked) rb4.grid(row=2,column=1) #ラジオ5(グループB) rb5 = ttk.Radiobutton(win,text='ラジオボタン5',value=1,variable=flg2,command=rb2_clicked) rb5.grid(row=2,column=2) rb5.state(['selected']) #---------------------- win.mainloop() print(flg1.get()) print(flg2.get())
ラジオボタンがあるウインドウを作成します。
複数のチェック風ボタン複数の中から1つのボタンを選択すると他のボタンの選択が消えるというラジオボタンを表示します。
この例では上段と下段でグループが判れているラジオボタンです。
上段で1つ、下段で1つだけ選択になります。
またラジオボタン2はクリック出来ない状態しています。
tkinterで作ったラジオボタンを押した時の動作を作成
def rb1_clicked(): print(flg1.get())
tkinterのウインドウに設置したラジオボタンを押した時に動作する関数を作ります。
引数無し、返り値なしの関数です。
ラジオボタンで最初に選択されているボタンを指定する1
flg1 = StringVar() flg1.set('1')
StringVarオブジェクト = StringVar()
StringVarオブジェクト.set( valueと同じ数字の文字 )
ラジオボタン作成で使ったvalue要素のボタン番号と同じになる数字の文字をStringVarオブジェクトに入れます。
tkinterのウインドウにラジオボタンを作成
#ラジオ1(グループA) rb1 = ttk.Radiobutton(win,text='ラジオボタン1',value=0,variable=flg1,command=rb1_clicked)
ラジオボタンのオブジェクトttk.Radiobutton( tkinterのオブジェクト , text=ラジオボタンに書かれる文字列 , value=ボタン番号 , variable=グループを示すStringVarオブジェクト , command=ラジオボタンを押された時に動作する関数の名前 )
ラジオボタンの作成をします。
variableで指定したStringVarオブジェクトを変える事でグループを別けます。
ラジオボタンで最初に選択されているボタンを指定する2
rb5.state(['selected'])
ラジオボタンのオブジェクト.state([‘selected’])
作成したラジオボタンのオブジェクトにstateで’selected’を入れます。
ラジオボタンを無効にする
rb2.state(['disabled'])
ラジオボタンのオブジェクト.state([‘disabled’])
作成したラジオボタンのオブジェクトにstateで’disabled’を入れます。
まとめ
チェックボックスのウインドウ内での位置や幅などはPythonでラベルとエディットボックスを付ける方法でやったように設定する事が出来ます。