Tkinter Scale的基本概念
Scale可以翻译为尺度。Python的tkinter模块中有Widget控件Scale,这是一种图形接口输入功能,我们可以移动尺度条产生某一范围的数字。
建立尺度条的方法是Scale( ),它的构造方法如下。
Scale(master, options, ...)
Scale( )方法的第一个参数是父对象,表示这个尺度条将建立在哪一个父对象内。下列是Scale( )方法内其他常用的options参数。
(1)activebackground:鼠标光标在尺度条上时的背景颜色。
(2)bg:背景颜色。
(3)borderwidth或bd:3D边界宽度默认是两个像素。
(4)command:当使用者更改数值时,会自动执行此函数。
(5)cursor:当鼠标光标在尺度条上时的光标形状。
(6)digits:尺度数值,读取时需使用IntVar、DoubleVar或StringVar变量类型读取。
(7)fg:文字前景颜色。
(8)font:字形。
(9)from_:尺度条范围值的初值。
(10)highlightbackground:当尺度条取得焦点时的背景颜色。
(11)highlightcolor:当尺度条获得焦点时的颜色。
(12)label:默认是没有标签文字,如果尺度条是水平的则此标签出现在左上角,如果尺度条是垂直的则此标签出现在右上角。
(13)length:默认是100像素。
(14)orient:默认是水平,可以设置水平HORIZONTAL或垂直VERTICAL。
(15)relief:默认是FLAT,可由此更改边界外观。
(16)repeatdelay:可设置需要按住尺度条多久后才可移动此尺度条,单位是ms,默认是300。
(17)resolution:每次更改的数值,例如,from_=2.0,to=4.0,如果将resolution设为0.5,则尺度可能数值是2.0、2.5、3.0、3.5、4.0。
(18)showvalue:正常会显示尺度条的目前值,如果设为0则不显示。
(19)state:如果设为DISABLE则暂时无法使用此Scale。
(20)takefocus:正常时此尺度条可以循环取得焦点,如果设为0则无法取得焦点。
(21)tickinterval:尺度条的标记刻度,例如,from_=2.0,to=3.0,tickinterval=0.25,则刻度是2.0、2.25、2.50、2.75和3.0。(22)to:尺度条范围值的末端值。
(23)troughcolor:槽(trough)的颜色。
(24)variable:设置或取得目前选取的尺度值,它的值类型通常是IntVar或StringVar。
(25)width:对于垂直尺度条这是槽的宽度,对于水平尺度条这是槽的高度。
示例1
一个产生水平尺度条与垂直尺度条的应用。尺度值的范围为0~10,垂直尺度条使用默认长度,水平尺度条则设为300。
from tkinter import *
window = Tk()
window.title("apidemos.com")
# window.geometry("300x180")
slider1 = Scale(window,from_=0,to=10).pack()
slider2 = Scale(window,from_=0,to=100,
length=300,orient=HORIZONTAL).pack()
window.mainloop()
输出:
示例2
设置Scale( )构造方法中的多个参数。
from tkinter import *
root = Tk()
root.title("apidemos.com") # 窗口标题
slider = Scale(
root,
from_=0, # 起点值
to=20, # 终点值
troughcolor="yellow", # 槽的颜色
width="30", # 槽的高度
tickinterval=2, # 刻度
label="My Scale", # Scale标签
length=300, # Scale长度
orient=HORIZONTAL # 水平
)
slider.pack()
root.mainloop()
输出: