Python的GUI编程(六)Scale(数值范围)

Tkinter 中的 Scale 控件是一种可供用户通过拖动指示器改变变量值的控件. 这种控件可以水平放置, 也可以竖直放置. 

可以在用户界面中放置一个 Scale 控件, 用户通过拖动该控件就可以在某个取值范围内选择一个合适的值. Scale 控件可以设置最大最小值以确定取值范围. 我们也可以改变 Scale 控件的放置方式, 使其水平或竖直放置. 当需要用户在一个范围内选择一个值时, Scale 控件比 Entry 控件更合适.

简单程序:

from Tkinter import *
root=Tk()

Scale(root).pack()

root.mainloop()

默认的情况:最小值0,最大值100,步长为1

改变这三个参数,生成 一个水平Scale,最小值为-1000,最大值为1000,步距值为10
from Tkinter import *
root=Tk()
root.geometry('200x200')
Scale(root,from_=-1000,to=1000,resolution=10,orient=HORIZONTAL).pack()

root.mainloop()
from_ , 设置最大值;to , 设置最小值;resolution , 设置步距值;orient = HORIZONTAL # 设置水平方向
注意from_的使用方式,在其后添加了"_",避免与关键字from的冲突


Scale 绑定变量并显示在Entry中
from Tkinter import *
root=Tk()
root.geometry('200x100')

v=IntVar()
Entry(root,textvariable=v,width=6).pack()
# variable = v #绑定变量
Scale(root,from_=-1000,to=1000,resolution=10,orient=HORIZONTAL,variable=v).pack()

root.mainloop()

回调函数的使用与上面作用一样
from Tkinter import *
root=Tk()
root.geometry('200x100')

v=IntVar()

def CallOn(text):
    return text
Entry(root,textvariable=str(CallOn(v)),width=6).pack()

# variable = v #绑定变量
Scale(root,from_=-1000,to=1000,resolution=10,orient=HORIZONTAL,variable=v,command=CallOn).pack()

root.mainloop()

控制显示位数,可以理解为:Scale的值为一整形,在输出显示时,它将会被转化为一字符串,如1.2转化为1.2或1.2000都是可以的
属性digits是控制显示的数字位数,将上面的例子中的数据以8位形式显示,在最后一位会添加一个0
from Tkinter import *
root=Tk()
root.geometry('200x100')

v=IntVar()

def CallOn(text):
    return text
Entry(root,textvariable=str(CallOn(v)),width=8).pack()

# variable = v #绑定变量
Scale(root,from_=0,to=100,resolution=0.0001,orient=HORIZONTAL,variable=v,command=CallOn,digits=8).pack()

root.mainloop()

设置Scale的标签属性label
from Tkinter import *
root=Tk()
root.geometry('200x100')

v=IntVar()

def CallOn(text):
    return text
Entry(root,textvariable=str(CallOn(v)),width=8).pack()

# variable = v #绑定变量
Scale(root,label='choice',from_=0,to=100,resolution=0.0001,orient=HORIZONTAL,variable=v,command=CallOn,digits=8).pack()

root.mainloop()

由label设置的值会显示在水平Scale的上方,用于提示信息
设置/取得Scale的值
set()与get()
from Tkinter import *
root=Tk()
root.geometry('200x100')

v=IntVar()

def CallOn(text):
    print S.get()

S=Scale(root,label='choice',from_=0,to=100,resolution=0.0001,orient=HORIZONTAL,variable=v,digits=8,command=CallOn)

#初始值
S.set(50)
S.pack()
root.mainloop()

 tickinterval 选项被设置为一个数值, 拖动时的选择值将会变为该数值的倍数
在 Scale 控件被竖直放置时, length 参数表示拖动条高度; 在 Scale 控件被水平放置时, length 参数表示拖动条长度.
from Tkinter import *
root=Tk()
root.geometry('500x100')

v=IntVar()

def CallOn(text):
    print S.get()

S=Scale(root,label='choice',from_=0,to=100,tickinterval=6,orient=HORIZONTAL,variable=v,command=CallOn,length=300)

#初始值
S.set(50)
S.pack()
root.mainloop()

  • 2
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HySmiley

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值