五笔打字通主页
这篇文章来讲一讲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()
运行结果: 丶丌皛
上面代码按默认的参数创建了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()
运行结果:
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
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()
运行结果
启动程序后,滑动的确停靠在设置的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()
运行结果:
此文章来自:wb98.com 网站还有相关的系列课程文章,感兴趣的可以前往。
下一篇文章,我来讲一下tkinter颜色及颜色对话框和跟颜色有关的参数。并把今天讲的scale组件用来调整窗体的背景颜色值。
来源:济亨网
本文链接:https://wb98.com/post/318.html