当前位置:首页 » tkinter » 正文

tkinter组件:Scale,用滑动方式输入数值

这篇文章来讲一讲Scale组件,翻译为标尺,尺度等,它是有一个可以有刻度的滑块,我们可以通过滑动滑块来确定一个数值。它的创建语法是:

Scale(父组件,参数…..)

我先把参数都列举出来,再来讲解:

activebackground

鼠标在组件上时的背景颜色

background  或 bg

组件的背景颜色

borderwidth  或 bd

组件边框的宽度,默认为2

command

当组件滑块滑动时,会执行此绑定的函数

sursor

鼠标在组件上移动时的光标形状

digits

设置组件最多可以显示多少位数字

foreground  或 fg

组件侧边的label文字和刻度上的文字颜色

font

组件侧边的label文字和刻度上的文字

from_

组件刻度的初值,默认为0

label

组件的侧边出现的标签文字,默认为不出现

length

标尺组件的长度,默认为100像素

orient

标尺的摆放方向,默认为水平摆放

relief

组件的外观样式

resolution

点击滑块2边,标尺滑块滑动的步长

showvalue

显示标尺的当前值,设置为0不显示,默认显示

state

组件的状态,为DISABLE则禁止使用

takefocus

按Tab键可以得到   焦点,为0则无法获得焦点

tickinterval

标尺刻度的间隔,默认为不显示刻度

to

组件刻度的终值,默认为100

variable

此参数绑定一个变量,变量存放滑动的当前值

width

组件的宽度,默认为15像素

 

下面我用代码创建2个标尺组件,一个竖直摆放,一个水平摆放。

from tkinter import *
 
root=Tk()
 
sca1=Scale(root) # 默认为竖直摆放
sca1.pack()
 
sca2=Scale(root,orient=HORIZONTAL) # HORIZONTAL为水平摆放
sca2.pack()
 
root.mainloop()

运行结果:      丶丌皛

                  1.PNG

上面代码按默认的参数创建了2个标尺组件。下面的讲解就以水平摆放的组件为例,竖直摆放的标尺只要举一反三就可以明白。

1. 上面标尺长度为100像素,现设置为 length=300 像素长度

2. 上面标尺刻度没有显示,现设置 tickinterval=25 间隔来显示

from tkinter import *
 
root=Tk()
 
sca1=Scale(root,orient=HORIZONTAL,
           length=300,tickinterval=25,) 
sca1.pack()
 
root.mainloop()

运行结果:

2.PNG

1. 上面点击滑块2边滑道内,只能变化1个单位,我们设置:

   resolution=10

2. 上面初值为0,终值为100,我们改一下初值为50,终值为500

   from_=50       to=500

3. 默认是没有侧边的提示标签显示,设置一下让它显示出来

   label=’wb98·com标尺’

from tkinter import *
 
root=Tk()
 
sca1=Scale(root,orient=HORIZONTAL,
           from_=50,to=200,  # 初值,终值
           label='wb98·com标尺',  # 提示标签
           resolution=10,  # 滑块变动步长
           length=300,tickinterval=25,)  # 标尺长度,刻度间隔
sca1.pack()
 
root.mainloop()

运行结果:               wb98.com

3.PNG

1. 标尺有一个command参数,在滑块滑动时,它就会触发command绑定的函数,我写代码在此函数里输出标尺的当前值,注意,这个函数一定要写一个参数。

2. 用 Scale组件.get()  方法可以得到标尺的当前值。

3. 我们可以用  Scale组件.get()  方法为滑块位置设置一个值,否则启动程序后,它只会停在滑块的初值,即起始位置。

from tkinter import *
 
def changejob(value): # 必须要有一个参数
    print(sca1.get()) # 得到滑块当前值的第1种方法
    print('value=',value) # 参数其实就是滑块的当前值
 
root=Tk()
 
sca1=Scale(root,orient=HORIZONTAL,
           from_=50,to=200,  # 初值,终值
           label='wb98·com标尺',  # 提示标签
           resolution=10,  # 滑块变动步长
           length=300,tickinterval=25, # 标尺长度,刻度间隔
           command=changejob)  # command绑定一个函数
sca1.pack()
 
sca1.set(150) # 为滑块设定一个值
 
root.mainloop()

运行结果

4.PNG

启动程序后,滑动的确停靠在设置的150这个位置上,拖动滑块,发现输出的函数参数value的值与通过get()得到值完全一样。其实,通过这个函数的参数就是获取滑块当前值的第2种方法。

第3种得到滑动当前值的方法,就是通过参数variable绑定一个变量,这样,滑块的最新值都会保存到这个变量里,通过get()方法也可以得到滑块的当前值,以下是3种方法的代码。

from tkinter import *
 
def changejob(value): # 必须要有一个参数
    print(sca1.get()) # 得到滑块当前值的第1种方法
    print('value=',value) # 参数其实就是滑块的当前值,第2种方法
 
root=Tk()
 
var=IntVar()
sca1=Scale(root,orient=HORIZONTAL,
           from_=50,to=200,  # 初值,终值
           label='wb98·com标尺',  # 提示标签
           resolution=10,  # 滑块变动步长
           length=300,tickinterval=25, # 标尺长度,刻度间隔
           variable=var    # 绑定变量
           command=changejob)  # command绑定一个函数
sca1.pack()
 
sca1.set(150) # 为滑块设定一个值
var.get() # 通过变量的get方法也可以得到滑动的当前值。第3种方法
root.mainloop()

既然Scale是用于输出数值的,那么,我们就可以利用它来改变字体的大小,下面的代码,我就用滑块调整字体的大小。

from tkinter import *
 
def changejob(a): # 这里必须要一个参数
    la1.config(font=('黑体',a)) # 参数就是滑动的当前值
 
root=Tk()
root.geometry('300x170+888+444')
 
la1=Label(root,text='永远',font=('黑体',12))
la1.pack()
 
sca1=Scale(root,from_=12,to=80,orient=HORIZONTAL,length=300,command=changejob)
sca1.pack(side=BOTTOM)
 
root.mainloop()

运行结果:

5.PNG

 此文章来自:wb98.com  网站还有相关的系列课程文章,感兴趣的可以前往。

下一篇文章,我来讲一下tkinter颜色及颜色对话框和跟颜色有关的参数。并把今天讲的scale组件用来调整窗体的背景颜色值。


打赏 支付宝打赏 微信打赏

来源:济亨网

本文链接:http://wb98.com/post/318.html

    << 上一篇 下一篇 >>

    湘公网安备 43011102000514号 - 湘ICP备08100508号