Tkinter教程之Scale 尺度
# Scale为输出限定范围的数字区间,可以为之指定最大值,最小值及步距值
'''''1.创建一个Scale'''
from tkinter import *
root = Tk()
Scale(root).pack()
# 创建一个垂直Scale,最大值为100,最小值为0,步距值为1。这个参数设置也就是Scale的缺省设置了。
''''2.改变这三个参数,生成 一个水平Scale,最小值为-400,最大值为500,步距值为5'''
Scale(root,
from_=-400, # 设置最小值
to=500, # 设置最大值
resolution=5, # 设置步距值
orient=HORIZONTAL # 设置水平方向
).pack()
'''''3.Scale绑定变量'''
v = StringVar()
Scale(root,
from_=0, # 设置最小值
to=100.0, # 设置最大值
resolution=0.0001, # 设置步距值
orient=HORIZONTAL, # 设置水平方向
variable=v # 绑定变量
).pack()
'''''4.使用回调函数打印当前的值'''
label = Label(root,
text = 'Scale',#标签显示文本
bitmap = 'info',#显示位图
bg='red',
fg='#FF00FF',
width=100,
height=20,
compound = 'left',
)
label.pack()
def printScale(text):
print('text = ', text)
print('v = ', v.get())
label.configure(text=v.get())
v = StringVar()
Scale(root,
from_=0, # 设置最小值
to=100.0, # 设置最大值
resolution=1, # 设置步距值
orient=HORIZONTAL, # 设置水平方向
variable=v, # 绑定变量
command=printScale # 设置回调函数
).pack()
''''5.控制显示位数,可以理解为:Scale的值为一整形,在输出显示时,它将会被转化为一字符串,如1.2转化为1.2或1.2000都是可以的'''
#属性digits是控制显示的数字位数,将上面的例子中的数据以8位形式显示,在最后一位会添加一个0
v = StringVar()
Scale(root,
from_=0, # 设置最小值
to=100.0, # 设置最大值
resolution=0.0001, # 设置步距值
orient=HORIZONTAL, # 设置水平方向
variable=v, # 绑定变量
digits=8, # 设置显示的位数为8
command=printScale # 设置回调函数
).pack()
''''6.设置Scale的标签属性label'''
sl=Scale(root,
from_=0, # 设置最大值
to=100.0, # 设置最小值
orient=HORIZONTAL, # 设置水平方向
label='choice:', # 设置标签值
)
'''''7.设置/取得Scale的值'''
sl.set(50) #将Scale的值设置为50
print(sl.get()) #打印当前的Scale的值
sl.pack()
root.mainloop()
运行结果:


评论