当前位置:   article > 正文

Python tkinter -- 第12章 Scale属性_tk.scale

tk.scale

第12章 Scale
Scale组件主要通过滑块来表示某个范围内的一个数字。你可以设置最小值和最大值,滚动的滑条取值在最大值和最小值之间。典型使用情形是在需要输入一个特定范围内的数值的时候,比如体温。

12.1 属性

属性描述
activebackground当鼠标放上去时,Scale的背景色
backgroud
bg
按钮的背景色
bigincrement快速调整数值的步长。
borderwidth
bd
边框的大小,默认为 2 个像素
command关联的函数,当按钮被点击时,执行该函数
digitsScale的数值。
cursor光标的形状设定,如arrow, circle, cross, plus 等
font文本字体
foreground
fg
选项的前景色
from起始数值。默认值是0
highlightcolor聚焦的高亮颜色
highlightbackground聚焦的高亮背景颜色
highlightthickness聚焦高亮边框宽度
label标签。
lengthScale的长度
orient设置Scale的方向。可以是VERTICAL或者是HORIZONAL
relief边框样式,设置控件3D效果,可选的有:FLAT、SUNKEN、RAISED、GROOVE、RIDGE。默认为 FLAT。
repeatdelay默认值是300
repeatinterval默认值是100
resolution默认值是1
showvalue默认值是1。
sliderlength默认值是30
sliderrelief定义滑块的装饰效果。参加relief属性。
stateScale状态,默认为 state=NORMAL
takefocus表示可以使用Tab键移动焦点到该控件。默认值是空字符串。
tickinterval默认值是0
to最大值或者结束值。默认是100。
troughcolor滑动槽颜色
variable与Scale关联的变量。
width定义Scale的宽度。默认值是15

12.1.1 activebackground
设置鼠标经过Scale控件时,滑块的颜色。

root=tk.Tk()
root.geometry('300x240')
b1=tk.Scale(root,length=200,orient=tk.HORIZONTAL,
            activebackground='red')
b1.pack()
root.mainloop()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

结果:
在这里插入图片描述
12.1.2 backgroud(bg)
设置Scale控件的背景颜色。

import tkinter as tk
root=tk.Tk()
root.geometry('300x240')
b1=tk.Scale(root,length
=200,orient=tk.HORIZONTAL,bg='green')
b1.pack()
root.mainloop()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

结果:
在这里插入图片描述

12.1.3 borderwidth(bd)
设置Scale控件边框宽度。

import tkinter as tk
root=tk.Tk()
root.geometry('300x240')
b1=tk.Scale(root,length=200,
            orient=tk.HORIZONTAL,bd=10)
b1.pack()
root.mainloop()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

结果:
在这里插入图片描述
12.1.4 bigincrement
设置快速调整步长。当Scale控件获得输入焦点后,按下CTRL键的同时,使用左右箭头或者上下箭头按键,会以bigincrement定义的数值来快速调整数值。

import tkinter as tk
root=tk.Tk()
root.geometry('300x240')
b1=tk.Scale(root,length=200,
            orient=tk.HORIZONTAL,bd=10,
            takefocus=1,bigincrement=5)
b1.pack()
root.mainloop()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

12.1.5 command
设置回调函数。只有一个参数值,就是Scale控件的新的位置。如果滑块快速地移动,函数可能无法获得每一个位置,但一定会获得滑块停下时的最终位置。

import tkinter as tk
root=tk.Tk()
root.geometry('300x240')
def pos(value):
    print(value)
    
b1=tk.Scale(root,length=200,
            orient=tk.HORIZONTAL,command=pos)
b1.pack()
root.mainloop()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

12.1.6 digits
设置最多显示多少位数字。默认情况下,Scale的数值范围是(0,100)。假如digits=5,表示最多可以显示5位数字。由于最大数值位100,5位数字就是100.00。可以看到Scale的数值显示为x.00。

import tkinter as tk
root=tk.Tk()
root.geometry('300x240')
    
b1=tk.Scale(root,length=200,
            orient=tk.HORIZONTAL,digits=5)
b1.pack()
root.mainloop()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

结果:
在这里插入图片描述
12.1.7 cursor
鼠标经过Scale控件时的形状。鼠标的形状详细说明见3.3.6节。
12.1.8 font
字体大小。字体的详细说明3.3.3节。
12.1.9 foreground(fg)
设置前景颜色。就是显示Scale数值的颜色。

import tkinter as tk
root=tk.Tk()
root.geometry('300x240')
    
b1=tk.Scale(root,length=200,
            orient=tk.HORIZONTAL,fg='blue')
b1.pack()
root.mainloop()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

结果:
在这里插入图片描述
12.1.10 from 和 to
设置Scale的起始值以及结束值。默认from=0,to=100。

import tkinter as tk
root=tk.Tk()
root.geometry('300x240')
    
b1=tk.Scale(root,length=200,
            orient=tk.HORIZONTAL,from_=20,to=40)
b1.pack()
root.mainloop()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

说明:由于from是关键字,所以用from_来替代。
12.1.11 highlightcolor、highlightbackground和highlightthickness
在Scale获得输入焦点的时候,显示的获得焦点时颜色,失去焦点时颜色和边框的宽度。需要设置takefocus=1,同时使用Tab键,让Scale控件获得输入焦点。

import tkinter as tk
root=tk.Tk()
root.geometry('300x240')
    
b1=tk.Scale(root,length
=200,orient=tk.HORIZONTAL,takefocus=1,
            highlightcolor='red',
            highlightbackground='blue',
            highlightthickness=10)
b1.pack()
tk.Entry(root).pack()
root.mainloop()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

结果:
在这里插入图片描述
在这里插入图片描述
12.1.12 label
显示提示信息,可以用来表示此Scale控件是做什么用的。

import tkinter as tk
root=tk.Tk()
root.geometry('300x240')

b1=tk.Scale(root,length=200,
            orient=tk.HORIZONTAL,label='数值')
b1.pack()
root.mainloop()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

结果:
在这里插入图片描述
12.1.13 length
Scale控件的长度。单位是像素。这个就是Scale控件在屏幕上显示的长度。
12.1.14 orient
设置Scale的类型,有水平和垂直两种。
12.1.15 relief
Scale的3D外观。

import tkinter as tk
root=tk.Tk()
root.geometry('300x240')

b1=tk.Scale(root,length=200,
            orient=tk.HORIZONTAL,
            relief='groove')
b1.pack()
root.mainloop()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

结果:
在这里插入图片描述
12.1.16 repeatdelay
定义滑块开始连续移动的延迟时间,单位时毫秒,默认值是300。当鼠标在滑动槽按下并保持,到滑块开始连续移动的时间间隔就是repeatdelay。

import tkinter as tk
root=tk.Tk()
root.geometry('300x240')

b1=tk.Scale(root,length=200,
            orient=tk.HORIZONTAL,
            repeatdelay=1000)
b1.pack()
root.mainloop()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

12.1.17 repeatinterval
当滑块开始移动后,滑块每次移动之间的时间间隔是repeatinterval来定义的。默认值是100,单位是毫秒。

import tkinter as tk
root=tk.Tk()
root.geometry('300x240')

b1=tk.Scale(root,length=200,
            orient=tk.HORIZONTAL,
            repeatdelay=2000,
            repeatinterval=500)
b1.pack()
root.mainloop()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

说明:repeatdelay是滑块开始连续移动前的时间间隔,而repeatinterval是滑块开始连续移动后的时间间隔。
12.1.18 resolution
滑块移动的粒度,就是每次移动数值的变化。默认值是1,也可以定义为其他的数值,比如0.1等。
12.1.19 showvalue
是否显示当前的数值。如果showvalue=False,则不再显示数值。showvalue=True,会在滑动槽的上方(水平Scale)或者左边(垂直Scale)显示数值。默认是显示数值。
12.1.20 sliderlength
滑块的大小。默认值是30。单位是像素。

import tkinter as tk
root=tk.Tk()
root.geometry('300x240')

b1=tk.Scale(root,length=200,
            orient=tk.HORIZONTAL,
            sliderlength=100)
b1.pack()
root.mainloop()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

结果:
在这里插入图片描述
12.1.21 sliderrelief
定义滑块的3D效果。

import tkinter as tk
root=tk.Tk()
root.geometry('300x240')

b1=tk.Scale(root,length=200,
            orient=tk.HORIZONTAL,
            sliderrelief='groove')
b1.pack()
root.mainloop()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

结果:
在这里插入图片描述
12.1.22 state
定义Scale控件的状态。有三种:NORMAL,DISABLED,ACTIVE
12.1.23 takefocus
是否可以通过Tab键获得输入焦点。
12.1.24 tickinterval
显示刻度,并定义刻度的粒度。比如例子中用的是20。如果刻度过细,可能导致刻度重叠显示而看不清。

import tkinter as tk
root=tk.Tk()
root.geometry('300x240')

b1=tk.Scale(root,length=200,
            orient=tk.HORIZONTAL,
            tickinterval=20)
b1.pack()
root.mainloop()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

结果:
在这里插入图片描述
12.1.25 troughcolor
设置滑动槽的背景颜色。

import tkinter as tk
root=tk.Tk()
root.geometry('300x240')

b1=tk.Scale(root,length=200,
            orient=tk.HORIZONTAL,
            troughcolor='red')
b1.pack()
root.mainloop()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

结果:
在这里插入图片描述
12.1.26 variable
定义与Scale控件关联的变量,可以是IntVar(),DoubleVar()和StringVar()。可以通过关联的变量获取Scale的当前数值,以及设置Scale的数值。

import tkinter as tk
root=tk.Tk()
root.geometry('300x240')

value=tk.StringVar()
v=tk.StringVar()
b1=tk.Scale(root,length=200,
            orient=tk.HORIZONTAL,variable=value)
b1.pack()
b3=tk.Entry(root,textvariable=v)

def set1():
    value.set(b3.get())

def get():
    v.set(value.get())
    
b2=tk.Button(root,text='Set',command=set1)
b2.pack()
b4=tk.Button(root,text='Get',command=get)
b4.pack()
b3.pack()
root.mainloop()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

结果:
在这里插入图片描述
12.1.27 width
设置Scale的宽度。默认是16。

import tkinter as tk
root=tk.Tk()
root.geometry('300x240')
b1=tk.Scale(root,length=200,
            orient=tk.HORIZONTAL,width=50)
b1.pack()
root.mainloop()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

结果:
在这里插入图片描述

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号