>>进阶
Spinbox
界面:
初始界面
界面中的每个输入栏中的上下按钮均可使用,其中第四个输入栏没有初始显示值:
每个输入栏的步长不一,可自行设置。其中,步长可设置为整数,也可以为小数;可以等差,也可以自行设定步长间隔。
代码:
import tkinter as tk
win = tk.Tk()
win.geometry('300x200+200+200')
frame1 = tk.Frame(win)
frame2 = tk.Frame(win)
frame3 = tk.Frame(win)
frame4 = tk.Frame(win)
sb1 = tk.Spinbox(frame1,
bg='light blue', # 背景色
fg='black', # 字体色
bd=10, # 框宽
from_=0, # 最大值
to=10, # 最小值
increment=2 # 步长
).pack()
sb2 = tk.Spinbox(frame1,
bg='pink', # 背景色
bd=5, # 框宽
values=(0, 2, 20, 40, 60)
).pack()
v = tk.StringVar()
sb3 = tk.Spinbox(frame1,
bg='light green', # 背景色
values=(0, 2, 20, 40, 60),
increment=2,
textvariable=v # 设置变量
)
v.set(20)
sb3.pack()
def printSpin():
sb4.insert(tk.END, '.00') # 每项后添加.00表示精度
print(sb4.get())
sb4 = tk.Spinbox(frame1,
bg='lavender', # 淡紫色
from_=0,
to=10,
command=printSpin # 回调函数
)
sb4.pack()
# 每次点击按钮就会调用函数printSpin。不需要参数
sb4.delete(0) # 删除指定位置数据,此处为不显示默认数据
frame1.grid(row=1, column=1, pady=5)
frame2.grid(row=2, column=1, pady=5)
frame3.grid(row=3, column=1, pady=5)
frame4.grid(row=4, column=1, pady=5)
win.mainloop()