Scale控件是一种滑动条用于设置/获取指定范围的数值。
orient
指定Scale是水平还是垂直。HORIZONTAL ,VERTICAL
Scale(main_win).pack()
Scale(main_win, orient=HORIZONTAL).pack()
bd
Scale的边框宽度
relief
Scale的边框显示样式,raised
,sunken
,flat
,ridge
,groove
,solid
Scale(main_win).pack()
Scale(main_win, bd=10, relief=RAISED).pack()
background
指定背景色
Scale(main_win).pack()
Scale(main_win, bg='yellow').pack()
Scale(main_win, bd=10, relief=RAISED, bg='yellow').pack()
from_
Scale指定数值范围的最小值
to
Scale指定数值范围的最大值
resolution
Scale滑块滑动的步进值。
默认,Scale的数值范围时[0,100],步长为1。
Scale(main_win).pack()
Scale(main_win, from_=1, to=1000, resolution=10).pack()# [1,1000],步长为10
length
Scale控件的长度。
Scale(main_win).pack()
Scale(main_win, length=200).pack()
sliderlength
slider的长度
Scale(main_win).pack()
Scale(main_win, sliderlength=50).pack()
showvalue
控制是否显示滑块旁的数值。1(默认)表示显示数值,0表示不显示数值。
Scale(main_win).pack()
Scale(main_win, showvalue=0).pack()# 不显示数值
command
回调函数,当Scale的滑块滑动时触发。指定的回调函数默认会将Scale的当前值作为参数传入。
def drag_cb(val):
print(f'{val}') # 拖动滑块,会持续打印scale的值
Scale(main_win, command=drag_cb).pack()
示例1
拖动滑块,自动将摄氏温度转换为华氏温度。
from tkinter import Tk, Scale, Label, IntVar
from tkinter.constants import HORIZONTAL,VERTICAL,RAISED,SUNKEN
main_win = Tk()
main_win.title('渔道的Scale控件')
width = 300
height = 300
main_win.geometry(f'{width}x{height}')
def drag_cb(val):
f = int(val)*1.8 + 32
s = '摄氏度:' + val + ",华氏度:" + str(f)
label.config(text=s)
print(s)
Scale(main_win, command=drag_cb, orient=HORIZONTAL).pack()
label = Label(main_win)
label.pack()
main_win.mainloop()