今回は、tkinterでスピンボックスを表示させる方法を記しておきます。
Pythonのtkinterで画像を表示させる方法
from tkinter import * from tkinter import ttk win = Tk() win.title('Spinbox') sptxt1 = StringVar() sp1 = Spinbox(win,textvariable=sptxt1,from_=-10,to=10,increment=1) sp1.grid(row=1,column=1) sp1.grid_configure(padx=20, pady=15) sptxt2 = StringVar() sptxt2.set(5.02) sp2 = Spinbox(win,textvariable=sptxt2,from_=-10,to=10,format='%.2f',increment=-0.5) sp2.grid(row=2,column=1) sp2.grid_configure(padx=20, pady=15) sptxt3 = StringVar() ary=['aaa','bbb','ccc'] sp3 = Spinbox(win,textvariable=sptxt3,value=ary) sp3.grid(row=3,column=1) sp3.grid_configure(padx=20, pady=15) sptxt4 = StringVar() sptxt4.set(0) sp4 = Spinbox(win,textvariable=sptxt4,from_=-10,to=10,increment=1,state='readonly') sp4.grid(row=4,column=1) sp4.grid_configure(padx=20, pady=15) win.mainloop() print(sptxt1.get()) print(sptxt2.get()) print(sptxt3.get()) print(sptxt4.get())
画像が入ってるウインドウを作成します。
このサンプルの場合
表示はこのような物になります。
スピンボックスというエディットボックスの右側に数字をアップダウンさせるボタンがある物を表示させます。
tkinterのウインドウにスピンボックスを設定する
tkinterのウインドウにスピンボックスを表示します。
スピンボックスを作る1
sp1 = Spinbox(win,textvariable=sptxt1,from_=-10,to=10,increment=1)
スピンボックスのオブジェクト=Spinbox(ウインドウのオブジェクト , textvariable = 変数 , from_ = 下限値 , to = 上限値 , increment = ボタンを押した時に増減する幅 )
整数値を選択するスピンボックスを作ります。
textvariableに渡す変数に初期値を入れる事が出来ます。
入れなければfrom_の下限値が初期値になります。
スピンボックスを作る2 小数ありの数値を選択
sp2 = Spinbox(win,textvariable=sptxt2,from_=-10,to=10,format='%.2f',increment=-0.5)
スピンボックスのオブジェクト=Spinbox(ウインドウのオブジェクト , textvariable = 変数 , from_ = 下限値 , to = 上限値 , ,format=フォーマットを示す文字列 ,increment = ボタンを押した時に増減する幅 )
formatで指定する事により小数も扱う事も出来ます。
また、incrementは小数でもマイナス値でも可能
ただしformatで小数を指定していないと小数かつマイナス値だとボタンを押しても数値が動かなかったりする
スピンボックスを作る3 文字列を選択する
ary=['aaa','bbb','ccc'] sp3 = Spinbox(win,textvariable=sptxt3,value=ary)
スピンボックスのオブジェクト=Spinbox(ウインドウのオブジェクト , textvariable = 変数 , value=配列 )
valueに配列を入れる事で文字を選択させる事も出来ます。
ただしincrement等は指定出来なくなります。
スピンボックスを作る4 選択した数値のみにする
sp4 = Spinbox(win,textvariable=sptxt4,from_=-10,to=10,increment=1,state='readonly')
スピンボックスのオブジェクト=Spinbox(ウインドウのオブジェクト , textvariable = 変数 , from_ = 下限値 , to = 上限値 , increment = ボタンを押した時に増減する幅 , state=’readonly’ )
state=’readonly’を追加する事によりエディットボックス部分が入力不可能になり、選択ボタンで変更した数値のみを使う事が出来ます。
その他
ボタンのウインドウ内の位置や幅などはPythonのGUIのtkinterを使う方法2 ラベルとエデットボックスの設置方法を参考にしてください。