文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

tkinter -- Scale

2023-01-30 22:02

关注

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

创建一个Scale

代码:

import tkinter as tk
root = tk.Tk()
tk.Scale(root).pack()
root.mainloop()

效果:

blob.png

创建一个垂直 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()

效果:

blob.png

注意 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()

效果:

blob.png



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

代码:

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

这个回调函数有一个参数,这个值是当前的 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()

结果:

blob.png




设置 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()

效果:

blob.png

由 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()

效果:

blob.png

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

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯