spinbox相当于entry的扩展,除了直接在spinbox中编辑或修改其值外,还可以通过上、下按钮来升序或降序地选择其值。
创建一个空的spinbox
from tkinter import Tk,Spinbox,StringVar,Button
main_win = Tk()
main_win.title('渔道的Spinbox控件')
width = 300
height = 300
main_win.geometry(f'{width}x{height}')
# 创建spinbox
s = Spinbox(main_win)
s.pack()
main_win.mainloop()
bg, fg
s = Spinbox(main_win, bg='yellow', fg='red')
s.pack()
bg表示背景色,fg不仅是设置文字的颜色,还改变箭头的颜色。
from_,to,increment
# from_ 指定spinbox的值范围的最小值
# to 指定spinbox的值范围的最大值
# increment 指定步进值, 默认为1
s = Spinbox(main_win, bg='yellow',from_=1, to=100, increment=10)
s.pack()
values
# 指定spinbox的值,values可以是一个列表或元组
# 如果指定了values, from_,to,increment将被屏蔽
values = (1, 2, 3, 4, 5, 6)# spinbox将只能在1-6范围内增减
# values = ('one', 'two', 'three', 'four', 'five', 'six')# spinbox将显示values中的字符串元素
s = Spinbox(main_win, bg='yellow',from_=1, to=100, values=values)
s.pack()
textvariable,command
def spin_cb():
print(f'xxx, {spinval.get()}')
# textvariable
# 当spinbox的值发生变化时,textvariable也同步记录变化后的值
spinval = StringVar()
s = Spinbox(main_win, from_=1.0, to=100.0, textvariable=spinval, command=spin_cb)
s.pack()
当点击spinbox的箭头,修改它的显示值时,spin_cb被触发,通过spinval打印spinbox的当前值。