Tkinter (16) 拉杆部件 Scale
拉杆部件的创建及其选项#
拉杆部件中包含滑块 slider, 滑块槽 trough, 刻度 tick, 标题 label 以及滑块值 value.
import tkinter as tk
parent = tk.Tk()
scale = tk.Scale(parent, option, ...)
选项 | 说明 |
---|---|
activebackground | active 时的背景色 |
bg or background | 背景色,点阵图时则为颜色值 0 的颜色 |
bd or borderwidth | 滑块与槽外框的寛度,内定为 2 点素 |
command | 滑块改变时调用的程序,一个参数为滑块值 |
cursor | 当鼠标移到部件时,所显示的鼠标图示 |
digits | IntVar, DoubleVar (float), StringVar 为滑块值的显示方式 |
font | 标签和注释使用的文本字体 |
fg or foreground | 前景色 |
from_ | 拉杆值范围的起始值,内定为 0 |
highlightbackground | 非聚焦时的聚焦颜色 |
highlightcolor | 聚焦时的聚焦颜色 |
highlightthickness | 聚焦厚度,内定 1, 0 则无 |
label | 标题字符串,水平在左上角,垂直在右上角,内定为无 |
length | 部件长度,单位为点素,内定为 100 点素 |
orient | HORIZONTAL/VERTICAL 水平或垂直方向 |
relief | 花边样式,内定为 FLAT |
repeatdelay | 直到经过指定时间 (毫秒), 开始重复按下滑块槽,内定 300ms |
repeatinterval | 重复间隔,以毫秒为单位重复按下滑块槽,内定 100ms |
resolution | 滑块值变动的最小单位值,-1 则为不取小数值 |
showvalue | 是否显示滑块值,内定为 True |
sliderlength | 滑块的长度,内定为 30 点素 |
sliderrelief | 滑块的花边样式,内定为 RAISED |
state | 部件状态,内定为 NORMAL / ACTIVE / DISABLED |
takefocus | TAB 键在部件是否会循环焦点,1 则会,内定为空字符串,则仅在具有键绑定下循环焦点 |
tickinterval | 刻度的间隔,内定为 0, 无刻度 |
to | 浮点拉杆值范围的终止值,内定为 100 |
troughcolor | 滑块槽的颜色 |
variable | 滑块值变量,IntVar, DoubleVar 或 StrngVar |
width | 滑块槽寛度,内定为 15 点素 |
拉杆部件的方法#
方法 | 说明 |
---|---|
coords(value=None) | 返回滑块值为 value 时,滑块所在的中心座标,预设 None 为目前滑块所在的中心座标 |
get() | 返回目前的滑块值 |
identify(x, y) | 返回座标 (x, y) 对应的零件,‘slider’滑块 /‘trough1’前滑块槽 /‘trough2’后滑块槽 /‘’其他位置 |
set(value) | 设置目前的滑块值 |
范例视窗及代码#
import tkinter as tk
def update(value):
label.configure(text=f"You drag the slider to value {value}.")
root = tk.Tk()
root.wm_title("Scale Demo")
font = ('Courier New', 20, 'bold')
select = tk.IntVar()
scale = tk.Scale(
label='Scale Widget', font=font, orient=tk.HORIZONTAL, showvalue=False,
bg='green', fg='white', tickinterval=20, length=800, width=30,
troughcolor='blue', variable=select, command=update)
scale.grid(row=0, column=0)
label = tk.Label(text='', width=40, font=font)
label.grid(row=1, column=0)
root.mainloop()
本作品采用《CC 协议》,转载必须注明作者和本文链接