Python GUI编程实战--Tkinter组件详解:Scale

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

语法
Here is the simple syntax to create this widget −

w = Scale ( master, option, … )
Parameters
master − This represents the parent window.

options − Here is the list of most commonly used options for this widget. These options can be used as key-value pairs separated by commas.

选项和说明:
activebackground:鼠标悬停在刻度上时的背景颜色。

bg:窗口小部件外部的背景颜色。

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

command:每次移动滑块时调用的过程。此过程将传递一个参数,即新的缩放值。如果滑块快速移动,您可能无法获得每个可能位置的回调,但在结算时肯定会收到回调。

cursor:如果将此选项设置为光标名称(箭头,点等),则当鼠标光标超出比例时,鼠标光标将更改为该模式。

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

font:用于标签和注释的字体。

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

from_:浮点数或整数值,用于定义比例范围的初始一端。

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

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

label:设置为标签的文本,可以在缩放小部件中显示标签。如果刻度为水平,则标签显示在左上角;如果是垂直,则标签显示在右上角。默认为无标签。

length:scale小部件的长度。如果比例为水平,则为x,如果为垂直,则为y。默认值为100像素。

orient:如果希望平行于x轴,则设置orient = HORIZONTAL;或者,如果希望平行于y轴,则设置为= VERTICAL。默认为水平。

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:通常,当scale小部件具有焦点时,响应鼠标事件或键盘事件。设置state = DISABLED以使窗口小部件无响应。

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:浮点数或整数值,定义比例范围的一端;另一端由from_选项定义,如上所述。 to值可以大于或小于from_值。对于垂直比例,to值定义比例的底部;对于水平刻度,右端。

troughcolor:槽的颜色。

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

width:小部件的宽度。如果刻度具有orient = HORIZONTAL,则这是垂直刻度的x维度和y维度。默认值为15像素。

常用方法:
get():此方法返回比例的当前值。

set ( value ):设置比例的值。

实战内容
1制作一个Scale,并能显示选择的值

from tkinter import *

window = Tk()
window.title("My Window")
window.geometry('200x180')

var = StringVar()
lb = Label(window, bg='yellow',width=20,
           text='empty')
lb.pack()
def print_selection(v):
    lb.config(text='You have selected ' + v)
sl = Scale(window, label='try me', # 设置标签值
           from_=5,  # 设置最小值
           to=11, # 设置最大值
           orient=HORIZONTAL, # 设置水平方向,横向(HORIZONTAL)和竖向(VERTICAL)
           length=200, # 设置Scale大小
           showvalue=1, # 设置选择的值,默认为0(不显示)或 1
           tickinterval=2, # 设置区间
           resolution=0.01,  # 设置步距值
           command=print_selection)
sl.pack()

window.mainloop()

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_37903789/article/details/83753382
今日推荐