内容正文:
《Python应用程序设计》
GUI之Scale
计算机教科组
1
Scale组件
发音:英[skeɪl]
Scale(刻度)组件是数值范围组件,该组件以滑块的形式规定数值范围,用户通过拖动滑块选择数值。
Scale组件的基本语法如下:
Scale(win,from_=0, to=200, resolution=1, orient="horizontal")
其中win为指定的父容器;
from_和to指定Scale组件的数值范围,其中from_为最小值,to为最大值;resolution定义滑块每次更改的数值;
orient定义组件垂直显示或水平显示,若值为HORIZONTAL表示水平显示,若值为VERTICAL表示垂直显示,默认值是 "vertical"。
Scale组件
例如,下面定义了三个Scale组件
import tkinter as tk
root = tk.Tk()
tk.Scale(root, from_=0, to=42,resolution=2).pack()
tk.Scale(root, from_=0, to=200, orient="horizontal").pack()
tk.Scale(root, from_=0, to=12, resolution=3,orient=tk.HORIZONTAL).pack()
root.mainloop()
Scale组件中各参数及其含义
参数 含义
tickinterval 尺度条每单元长度的数值
label 标签文字,如果进度条是水平显示,则标签显示在其左上角;
若进度条是垂直显示,则标签显示在右上角
digits 控制显示的数字位数
length 在 Scale 控件被竖直放置时, length 参数表示拖动条高度;
在 Scale 控件被水平放置时, length 参数表示拖动条长度.
command 当Scale的数值变化时,执行某函数
variable 设置或获取目前刻度尺的数值
showvalue 是否显示尺度条的数值,默认为显示,若值为0,则不显示
troughcolor 刻度尺的颜色
Scale组件
import tkinter as tk
root=tk.Tk()
root.geometry('500x100')
S = tk.Scale(root, label='滑块', from_=0, to=100, orient=tk.HORIZONTAL, tickinterval=10,length=300)
S.set(50)
S.pack()
root.mainloop()
Scale组件command
command:调用时,第一个参数为当前滑块的值
from tkinter import *
root = Tk()
root.geometry('200x100')
v = IntVar()
def CallOn(a):
e.delete(0,'end')
e.insert(0,a)
e=Entry(root)
e.pack()
Scale(root, from_=-1000, to=1000, resolution=10, orient=HORIZONTAL, command=CallOn).pack()
root.mainloop()
Scale组件方法
get( ):获得当前滑块的位置。Tkinter 会尽可能地返回一个整型值,否则返回一个浮点型值
set(value):设置 Scale 组件的值(滑块的位置)
import tkinter as tk
root = tk.Tk()
s1 = tk.Scale(root, from_=0, to=42,troughcolor='red')
s1.pack()
s2 = tk.Scale(root, from_=0, to=200, orient="horizontal")
s2.pack()
def show():
print(s1.get(), s2.get())
def back():
s1.set(0)
s2.set(0)
tk.Button(root, text="获得位置", command=show).pack(side='left',padx=10)
tk.Button(root, text="回到起点", command=back).pack(side='left',padx=10)
root.mainloop()
Scale 绑定变量并显示在Entry中
from tkinter import *
root = Tk()
root.geometry('200x10