欢迎光临
我们一起进阶

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

扫码或搜索:沉默王二
发送 290992
即可立即永久解锁本站全部文章
Tkinter 中的 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()

赞(1) 打赏
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

小白学堂,学的不止是技术,更是前程

关于我们免责声明

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏