发布时间:2018-06-04 17:33:23编辑:Run阅读(3326)
Scale 为输出限定范围的数字区间,可以为之指定最大值,最小值及步距值
创建一个Scale
代码:
import tkinter as tk root = tk.Tk() tk.Scale(root).pack() root.mainloop()
效果:
创建一个垂直 Scale,最大值为100,最小值为0,步距值为1。这个参数设置也就是 Scale的缺省设置了
改变这三个参数,生成 一个水平 Scale,最小值为-500,最大值为500,步距值为5
from_ 设置最小值,注意后面有个_
to 设置最大值
resolution 设置步距值
orient 设置方向
代码:
import tkinter as tk root = tk.Tk() tk.Scale(root, from_=-500, to=500, resolution=5, orient='horizontal').pack() root.mainloop()
效果:
注意 from_的使用方式,在其后添加了"_",避免与关键字 from 的冲突
Scale 绑定变量
代码:
import tkinter as tk root = tk.Tk() v = tk.IntVar() scale = tk.Scale(root, from_=1, to=100, resolution=1, orient='horizontal', variable=v) scale.pack() print(v.get()) root.mainloop()
效果:
使用回调函数打印当前的值
代码:
import tkinter as tk root = tk.Tk() def printscale(text): print('text = {}'.format(text)) print('v = {}'.format(v.get())) v = tk.StringVar() tk.scale = tk.Scale(root, from_=1, # 设置最小值 to=100, # 设置最大值 resolution=1, # 设置步距值 orient='horizontal', # 设置水平方向 variable=v, # 绑定变量 command=printscale # 设置回调函数 ).pack() print(v.get()) root.mainloop()
效果:
这个回调函数有一个参数,这个值是当前的 Scale 的值,每移动一个步距就会调用一次这个函数
控制显示位数,可以理解为:Scale 的值为一整形,在输出显示时,它将会被转化为一字符串,如1.2转化为1.2或1.2000都是可以的
属性 digits 是控制显示的数字位数,将数据以8位形式显示,在最后一位会添加一个0
代码:
import tkinter as tk root = tk.Tk() def printscale(text): print('text = {}'.format(text)) print('v = {}'.format(v.get())) v = tk.StringVar() tk.scale = tk.Scale(root, from_=0, # 设置最小值 to=100.0, # 设置最大值 resolution=0.0001, # 设置步距值 orient='horizontal', # 设置水平方向 digits=8, # 设置显示的位数为8 variable=v, # 绑定变量 command=printscale # 设置回调函数 ).pack() print(v.get()) root.mainloop()
结果:
设置 Scale 的标签属性 label
代码:
import tkinter as tk root = tk.Tk() tk.scale = tk.Scale(root, from_=0, # 设置最小值 to=100, # 设置最大值 resolution=1, # 设置步距值 orient='horizontal', # 设置水平方向 label='choice:', # 设置标签值 ).pack() root.mainloop()
效果:
由 label 设置的值会显示在水平 Scale 的上方,用于提示信息
设置/取得 Scale 的值
代码:
import tkinter as tk root = tk.Tk() root.geometry('200x100') # 设置弹框为200 x 100大小 v = tk.StringVar() def text(text): print(s.get()) s = tk.Scale(root, from_=0, # 设置最小值 to=100, # 设置最大值 resolution=1, # 设置步距值 orient='horizontal', # 设置水平方向 variable=v, # 绑定变量 label='choice', # 设置标签值 command=text # 设置回调函数 ) # 设置初始值为50 s.set(50) s.pack() root.mainloop()
效果:
slider 的位置位于了中间,sl.set(50)起作用了,打印值为50
上一篇: tkinter -- Listbox
下一篇: tkinter -- Spinbox
47745
46235
37110
34627
29229
25886
24745
19863
19417
17908
5716°
6315°
5835°
5888°
6984°
5829°
5846°
6361°
6316°
7673°