前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >tkinter -- Scale

tkinter -- Scale

作者头像
py3study
发布2018-08-03 10:41:22
1.2K0
发布2018-08-03 10:41:22
举报
文章被收录于专栏:python3python3

Scale 为输出限定范围的数字区间,可以为之指定最大值,最小值及步距值

创建一个Scale

代码:

代码语言:javascript
复制
import tkinter as tk
root = tk.Tk()
tk.Scale(root).pack()
root.mainloop()

效果:

blob.png
blob.png

创建一个垂直 Scale,最大值为100,最小值为0,步距值为1。这个参数设置也就是 Scale的缺省设置了

改变这三个参数,生成 一个水平 Scale,最小值为-500,最大值为500,步距值为5

from_       设置最小值,注意后面有个_

to          设置最大值

resolution  设置步距值

orient      设置方向

代码:

代码语言:javascript
复制
import tkinter as tk
root = tk.Tk()
tk.Scale(root, from_=-500, to=500, resolution=5, orient='horizontal').pack()
root.mainloop()

效果:

blob.png
blob.png

注意 from_的使用方式,在其后添加了"_",避免与关键字 from 的冲突

Scale 绑定变量

代码:

代码语言:javascript
复制
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()

效果:

blob.png
blob.png

使用回调函数打印当前的值

代码:

代码语言:javascript
复制
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()

效果:

444.gif
444.gif

这个回调函数有一个参数,这个值是当前的 Scale 的值,每移动一个步距就会调用一次这个函数

控制显示位数,可以理解为:Scale 的值为一整形,在输出显示时,它将会被转化为一字符串,如1.2转化为1.2或1.2000都是可以的

属性 digits 是控制显示的数字位数,将数据以8位形式显示,在最后一位会添加一个0

代码:

代码语言:javascript
复制
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()

结果:

blob.png
blob.png

设置 Scale 的标签属性 label

代码:

代码语言:javascript
复制
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()

效果:

blob.png
blob.png

由 label 设置的值会显示在水平 Scale 的上方,用于提示信息

设置/取得 Scale 的值

代码:

代码语言:javascript
复制
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()

效果:

blob.png
blob.png

slider 的位置位于了中间,sl.set(50)起作用了,打印值为50

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-06-04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档