Tkinter 组件详解之Scale

Scale(刻度)组件看起来像是一个带数据的 Scrollbar(滚动条)组件,但事实上它们是不同的两个东东。Scale 组件允许用于通过滑动滑块来选择一个范围内的数字。你可以控制该组件的最大值、最小值,以及分辨率。

何时使用 Scale 组件?

当你希望用户输入某个范围内的一个数值,使用 Scale 组件可以很好的代替 Entry 组件。

用法

创建一个指定范围的 Scale 组件其实非常容易,你只需要指定它的 from 和 to 两个选项即可。但由于 from 本身是 Python 的关键字,所以为了区分需要在后边紧跟一个下划线:from_

import tkinter as tkroot = tk.Tk()tk.Scale(root, from_=0, to=42).pack()
tk.Scale(root, from_=0, to=200, orient="horizontal").pack()root.mainloop()

使用 get() 方法可以获取当前滑块的位置:

import tkinter as tkroot = tk.Tk()s1 = tk.Scale(root, from_=0, to=42)
s1.pack()s2 = tk.Scale(root, from_=0, to=200, orient="horizontal")
s2.pack()def show():print(s1.get(), s2.get())tk.Button(root, text="获得位置", command=show).pack()root.mainloop()

然后,你可以通过 resolution 选项控制分辨率(步长),通过 tickinterval 选项设置刻度:

import tkinter as tkroot = tk.Tk()tk.Scale(root, from_=0, to=42, tickinterval=5, length=200, \resolution=5, orient="vertical").pack()
tk.Scale(root, from_=0, to=200, tickinterval=10, length=600, \orient="horizontal").pack()root.mainloop()

参数

Scale(master=None, **options) (class)

master -- 父组件

**options -- 组件选项,下方表格详细列举了各个选项的具体含义和用法:

选项 含义
activebackground 1. 指定当鼠标在上方飘过的时候滑块的背景颜色
2. 默认值由系统指定
background 1. 滚动槽外部的背景颜色
2. 默认值由系统指定
bg 跟 background 一样
bigincrement 1. 设置“大”增长量
2. 该选项设置增长量的大小
3. 默认值是 0,增长量为范围的 1/10
borderwidth 1. 指定边框宽度
2. 默认值是 2
bd 跟 borderwidth 一样
command 1. 指定一个函数,每当滑块发生改变的时候都会自动调用该函数
2. 该函数有一个唯一的参数,就是最新的滑块位置
3. 如果滑块快速地移动,函数可能无法获得每一个位置,但一定会获得滑块停下时的最终位置
cursor 1. 指定当鼠标在上方飘过的时候的鼠标样式
2. 默认值由系统指定
digits 1. 设置最多显示多少位数字
2. 补充注释:例如设置 from 选项为 0,to 选项为 20,digits 选项设置为 5,那么滑块的范围就是在 0.000 ~ 20.000 直接滑动
3. 默认值是 0(不开启)
foreground 1. 指定滑块左侧的 Label 和刻度的文字颜色
2. 默认值由系统指定
fg 跟 foreground 一样
font 1. 指定滑块左侧的 Label 和刻度的文字字体
2. 默认值由系统指定
from 1. 设置滑块最顶(左)端的位置
2. 默认值是 0
highlightbackground 1. 指定当 Scale 没有获得焦点的时候高亮边框的颜色
2. 默认值由系统指定
highlightcolor 1. 指定当 Scale 获得焦点的时候高亮边框的颜色
2. 默认值由系统指定
highlightthickness 1. 指定高亮边框的宽度
2. 默认值是 0(不带高亮边框)
label 1. 你可以在垂直的 Scale 组件的顶端右侧(水平的话是左端上方)显示一个文本标签
2. 默认值是不显示标签
length 1. Scale 组件的长度
2. 默认值是 100 像素
orient 1. 设置该 Scale 组件是水平放置("horizontal")还是垂直放置("vertical")
2. 默认值是 "vertical"
relief 1. 指定边框样式 
2. 默认值是 "sunken"
3. 可以选择 "flat","raised","groove" 和 "ridge"
repeatdelay 1. 该选项指定鼠标左键点击滚动条凹槽的响应时间
2. 默认值是 300(毫秒)
repeatinterval 1. 该选项指定鼠标左键紧按滚动条凹槽时的响应间隔
2. 默认值是 100(毫秒)
resolution 1. 指定 Scale 组件的分辨率(步长,即在凹槽点击一下鼠标左键它移动的数量)
2. 补充注释:例如设置 from 选项为 0,to 选项为 20,resolution 选项设置为 0.1 的话,那么每点击一下鼠标就是在 0.0 ~ 20.0 之间以 0.1 的步长移动
3. 默认值是 1
showvalue 1. 设置是否显示滑块旁边的数字
2. 默认值为 True
sliderlength 1. 设置滑块的长度
2. 默认值是 30 像素
sliderrelief 1. 设置滑块的样式
2. 默认值是 "raised"
3. "flat","sunken","groove" 和 "ridge"
state 1. 默认情况下 Scale 组件支持鼠标事件和键盘事件,可以通过设置该选项为 "disabled" 来禁用此功能
2. 默认值是 "normal"
takefocus 1. 指定使用 Tab 键是否可以将焦点移动到该 Scale 组件上
2. 默认是开启的,可以通过将该选项设置为 False 避免焦点落在此组件上
tickinterval 1. 设置显示的刻度,如果设置一个值,那么就会按照该值的倍数显示刻度
2. 默认值是不显示刻度
to 1. 设置滑块最底(右)端的位置
2. 默认值是 100
troughcolor 1. 设置凹槽的颜色
2. 默认值由系统指定
variable 1. 指定一个与 Scale 组件相关联的 Tkinter 变量,该变量存放滑块最新的位置
2. 当滑块移动的时候,该变量的值也会发生相应的变化
width 1. 指定 Scale 组件的宽度
2. 默认值是 15 像素

方法

coords(value=None)
-- 获得当前滑块的位置对应 Scale 组件左上角的相对坐标
-- 如果设置 value 参数,则返回当滑块所在该位置时的相对坐标

get()
-- 获得当前滑块的位置
-- Tkinter 会尽可能地返回一个整型值,否则返回一个浮点型值

identify(x, y)
-- 返回一个字符串表示指定位置下(如果有的话)的 Scale 部件
-- 返回值可以是:"slider"(滑块),"trough1"(左侧或上侧的凹槽),"trough2"(右侧或下侧的凹槽)或 ""(啥都没有)

set(value)
-- 设置 Scale 组件的值(滑块的位置)

Tkinter 组件详解(十):Scale相关推荐

  1. Tkinter 组件详解(一):Label

    Tkinter 组件详解之Label Label(标签)组件用于在屏幕上显示文本或图像.Label 组件仅能显示单一字体的文本,但文本可以跨越多行.另外,还可以为其中的个别字符加上下划线(例如用于表示 ...

  2. Tkinter 组件详解(七):Entry

    Tkinter 组件详解之Entry Entry(输入框)组件通常用于获取用户的输入文本. 何时使用 Entry 组件? Entry 组件仅允许用于输入一行文本,如果用于输入的字符串长度比该组件可显示 ...

  3. Tkinter 组件详解(八):Listbox

    Tkinter 组件详解之Listbox Listbox(列表框)组件用于显示一个选择列表.Listbox 只能包含文本项目,并且所有的项目都需要使用相同的字体和颜色.根据组件的配置,用户可以从列表中 ...

  4. Tkinter 组件详解(五):Frame

    Tkinter 组件详解之Frame Frame(框架)组件是在屏幕上的一个矩形区域.Frame 主要是作为其他组件的框架基础,或为其他组件提供间距填充. 何时使用 Frame 组件? Frame 组 ...

  5. Tkinter 组件详解(九):Scrollbar

    Tkinter 组件详解之Scrollbar Scrollbar(滚动条)组件用于滚动一些组件的可见范围,根据方向可分为垂直滚动条和水平滚动条.Scrollbar 组件常常被用于实现文本.画布和列表框 ...

  6. Tkinter组件详解(五):Listbox和Scrollbar

    Tkinter组件详解之Listbox Listbox(列表框)组件用于显示一个选择列表.Listbox 只能包含文本项目,并且所有的项目都需要使用相同的字体和颜色.根据组件的配置,用户可以从列表中选 ...

  7. Tkinter 组件详解(四):Radiobutton

    Tkinter 组件详解之Radiobutton Radiobutton(单选按钮)组件用于实现多选一的问题.Radiobutton 组件可以包含文本或图像,每一个按钮都可以与一个 Python 的函 ...

  8. Tkinter 组件详解(十八):PanedWindow

    PanedWindow 组件(Tk8.4 新增)是一个空间管理组件.跟 Frame 组件类似,都是为组件提供一个框架,不过 PanedWindow 允许让用户调整应用程序的空间划分. 何时使用 Pan ...

  9. Tkinter 组件详解(十九):Toplevel

    Toplevel(顶级窗口)组件类似于 Frame 组件,但 Toplevel 组件是一个独立的顶级窗口,这种窗口通常拥有标题栏.边框等部件. 何时使用 Toplevel 组件? Toplevel 组 ...

最新文章

  1. 不得不了解系列之限流
  2. Android开发--FileInputStream/OutStream/Sdcard写入
  3. BZOJ 3529: [Sdoi2014]数表
  4. 生活中处处有joke!!
  5. 悟懂MapReduce,不纠结!
  6. CF741D Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh paths 树启 + 状压
  7. 第三方软件要使用QQ邮箱进行发邮件相关设置
  8. 前端学习(2488):使用git获取代码
  9. 信息学奥赛C++语言:顺序输出
  10. mysql 查询的关键词的执行顺序
  11. IT公司速查手册的各大IT公司薪资和待遇内幕
  12. windows bat文件更改为 exe文件
  13. web开发第三方登陆之微信登陆
  14. Invalid bound statement (not found): com.example.wyl.mapper.PeijianDAO.selectList异常错误
  15. 仿今日头条后台管理系统(三)
  16. 人脸识别-Loss-2010:Softmax Loss(Softmax激活函数 + “交叉熵损失函数”)【样本3真实标签为c_5,则样本3的损失:loss_3=-log(\hat{y}_5^3)】
  17. C语言鼠标操作方法及源码
  18. NOIP2016——蚯蚓
  19. brew mysql 配置文件_修改用brew安装的mysql配置
  20. 理解DCT与DST【三】:离散正弦变换

热门文章

  1. [NOI2008] 糖果雨
  2. HDU 1863 (图论基础prim算法)
  3. 8086指令系统中的寻址方式
  4. qemu 规范路径_EVE-NG镜像添加技巧(以思科虚拟化产品为例)
  5. 【ESP32 开发】ArduinoJson联合PSRAM解决 ESP32内存过小 无限重启的问题
  6. 京东API item_search - 按关键字搜索商品
  7. C语言深度解剖读书笔记
  8. 谈谈CANopen协议的机制
  9. 苹果原壁纸高清_ios14.2壁纸原图高清分享:苹果ios14.2壁纸高清无水印[多图]
  10. mtk平台gsensor,msensor方向确定方法