Scale 控件用于创建一个标尺式的滑动条对象,让用户可以移动标尺上的光标来设置数值。
Scale 控件的常用方法:
方法 | 说明 |
---|---|
get() | 取得目前标尺上的光标值。 |
set(value) | 设置目前标尺上的光标值。 |
下面的示例将创建三个 Scale 控件,分别用来选择 R、G、B 三原色的值。移动Scale控件到显示颜色的位置后,单击 Show color 按钮即可将RGB的颜色显示在一个 Label 控件上。
# Scale滑动条 from tkinter import * # 创建主窗口 win = Tk() # 将标尺上的0~130范围的数字转换为0~255范围的16进位数字, # 再转换为两个字符的字符串,如果数字只有一-位,就在前面加一个零 def getRGBStr(value): # 将标尺_上的0~130范围的数字,转换为0~255范围的16进位数字, # 再转换为字符串 ret = str(hex(int(value / 130 * 255))) # 将16进位数字前面的0x去掉 ret = ret[2:4] # 转换成两个字符的字符串,如果数字只有一-位,就在前面加一个零 ret = ret.zfill(2) return ret # 将RGB颜色的字符串转换为# rrggbb类型的字符串 def showRGBColor(): # 读取#rrggbb字符串的rr部分 strR = getRGBStr(var1.get()) # 读取#rrggbb字符串的gg部分 strG = getRGBStr(var2.get()) # 读取#rrggbb字符串的bb部分 strB = getRGBStr(var3.get()) # 转换为# rrggbb类型的字符串 color = "#" + strR + strG + strB # 将颜色字符串设置给Label控件的背景颜色 colorBar.config(background=color) # 分别读取三个标尺的值,是一个双精度浮点数 var1 = DoubleVar() var2 = DoubleVar() var3 = DoubleVar() # 创建标尺 scale1 = Scale(win, variable=var1) scale2 = Scale(win, variable=var2) scale3 = Scale(win, variable=var3) # 将选择按钮靠左对齐 scale1.pack(side=LEFT) scale2.pack(side=LEFT) scale3.pack(side=LEFT) # 创建一个标签,用于显示颜色字符串 colorBar = Label(win, text="" * 40, background="#000000") colorBar.pack(side=TOP) # 创建一个按钮,单击后即将标尺上的RGB颜色显示在Label控件上 button = Button(win, text=" 查看颜色", command=showRGBColor) button.pack(side=BOTTOM) # 开始程序循环 win.mainloop()
结果如图所示: