Python Tkinter Scale



Python Tkinter Scale 小部件提供了一个图形滑块对象,允许您从特定比例中选择值。

语法

以下是创建此小部件的简单语法 -


 w = Scale ( master, option, ... )

参数

  • master - 这表示父窗口。
  • options − 这是此小部件最常用的选项列表。这些 options 可以用作用逗号分隔的键值对。
选项 描述
activebackground

鼠标悬停在刻度上的背景色。

bg

窗口小部件中位于槽外部部分的背景颜色。

bd

槽和滑块周围的 3-D 边界的宽度。默认值为 2 像素。

command

每次移动滑块时要调用的过程。此过程将传递一个参数,即新的 scale 值。如果滑块快速移动,则可能不会收到每个 可能的位置,但当它稳定时,您肯定会收到回调。

cursor

如果将此选项设置为光标名称(箭头、点等),则鼠标光标在超过刻度时将更改为该模式。

digits

程序读取 scale 小部件中显示的当前值的方式是通过 control 变量。刻度的控制变量可以是 IntVar、DoubleVar (float) 或 StringVar。如果它 是一个字符串变量,则 digits 选项控制将数字刻度值转换为字符串时要使用的位数。

font

用于标签和注释的字体。

fg

用于标签和注释的文本的颜色。

from_

定义刻度范围一端的浮点数或整数值。

highlightbackground

当刻度没有焦点时,焦点的颜色会突出显示。

highlightcolor

当刻度具有焦点时,焦点的颜色会突出显示。

label

您可以通过将此选项设置为标签的文本,在刻度 Widget 中显示标签。如果刻度为水平,则标签显示在左上角,如果垂直,则标签显示在右上角。默认值为 no label。

length

缩放 Widget 的长度。如果刻度为水平,则为 x 维度,如果垂直,则为 y 维度。默认值为 100 像素。

orient

如果您希望刻度沿 x 尺寸运行,请设置 orient=HORIZONTAL,或设置 orient=VERTICAL 平行于 y 轴运行。默认值为 horizontal。

relief

指定标签周围装饰性边框的外观。默认值为 FLAT;以获取其他值。

repeatdelay

此选项控制在滑块开始向该方向重复移动之前必须在槽中按住按钮 1 的时间。默认值为 repeatdelay=300,单位为毫秒。

resolution

通常,用户只能更改整个单位的比例。将此选项设置为其他值,以更改缩放值的最小增量。例如,如果 from_=-1.0 且 to=1.0,并且设置 resolution=0.5,则缩放将有 5 个可能的值:-1.0、-0.5、0.0、+0.5 和 +1.0。

showvalue

通常,刻度的当前值由滑块以文本形式显示(在滑块上方为水平刻度,向左为垂直刻度)。将此选项设置为 0 可隐藏该标签。

sliderlength

通常,滑块沿刻度长度为 30 像素。您可以通过将 sliderlength 选项设置为所需的长度来更改该长度。

state

通常,缩放小部件会响应鼠标事件,当它们具有焦点时,还会响应键盘事件。设置 state=DISABLED 以使 widget 无响应。

takefocus

通常,焦点将在 scale 小部件之间循环。如果您不希望此行为,请将此选项设置为 0。

tickinterval

要显示周期性的刻度值,请将此选项设置为一个数字,刻度将按该值的倍数显示。例如,如果 from_=0.0、to=1.0 和 tickinterval=0.25,则标签将为 沿刻度以 0.0、0.25、0.50、0.75 和 1.00 的值显示。如果水平,则这些标签显示在刻度的下方,如果垂直,则显示在刻度的左侧。默认值为 0,这将禁止显示刻度。

to

定义刻度范围一端的 float 或 integer 值;另一端由上面讨论的 from_ 选项定义。to 值可以大于或小于 from_ 价值。对于垂直刻度,to 值定义刻度的底部;对于水平刻度,为右端。

troughcolor

槽的颜色。

variable

此刻度的控制变量(如果有)。控制变量可以来自类 IntVar、DoubleVar (float) 或 StringVar。在后一种情况下,数值将转换为字符串。

width

小部件的槽部分的宽度。这是垂直刻度的 x 维度和 y 维度(如果刻度具有 orient=HORIZONTAL)。默认值为 15 像素。

方法

Scale 对象具有以下方法 -

方法 描述
get()

此方法返回刻度的当前值。

set ( value )

设置比例的值。

请自行尝试以下示例 -


from tkinter import *
def sel():
	 	selection = "Value = " + str(var.get())
	 	label.config(text = selection)

root = Tk()
var = DoubleVar()
scale = Scale( root, variable = var )
scale.pack(anchor=CENTER)

button = Button(root, text="Get Scale Value", command=sel)
button.pack(anchor=CENTER)

label = Label(root)
label.pack()

root.mainloop()

执行上述代码时,它会生成以下 resul -

tkinter scale