Tkinter 组件详解(九):Scrollbar
Tkinter 组件详解之Scrollbar
Scrollbar(滚动条)组件用于滚动一些组件的可见范围,根据方向可分为垂直滚动条和水平滚动条。Scrollbar 组件常常被用于实现文本、画布和列表框的滚动。
何时使用 Scrollbar 组件?
Scrollbar 组件通常几乎与 Text 组件、Canvas 组件和 Listbox 组件一起使用,水平滚动条还能跟 Entry 组件配合。
用法
下边例子我们演示如何使用垂直滚动条。为了在某个组件上安装垂直滚动条,你需要做两件事:
1. 设置该组件的 yscrollbarcommand 选项为 Scrollbar 组件的 set() 方法;
2. 设置 Scrollbar 组件的 command 选项为该组件的 yview() 方法。
import tkinter as tkroot = tk.Tk()sb = tk.Scrollbar(root)
sb.pack(side="right", fill="y")lb = tk.Listbox(root, yscrollcommand=sb.set)for i in range(1000):lb.insert("end", str(i))lb.pack(side="left", fill="both")sb.config(command=lb.yview)root.mainloop()
分析:当 Listbox 组件的可视范围发生改变的时候,Listbox 组件通过调用 set() 方法通知 Scrollbar 组件。而当用户操纵滚动条的时候,将自动调用 Listbox 组件的 yview() 方法。
添加水平滚动条方法跟上边一样,只是将 yscrollcommand 改为 xscrollcommand,yview 改为 xview 即可。
参数
Scrollbar(master=None, **options) (class)
master -- 父组件
**options -- 组件选项,下方表格详细列举了各个选项的具体含义和用法:
选项 | 含义 |
activebackground |
1. 指定当鼠标在上方飘过的时候滑块和箭头的背景颜色 2. 默认值由系统指定 |
activerelief |
1. 指定当鼠标在上方飘过的时候滑块的样式 2. 默认值是 "raised" 3. 可以选择 "flat","sunken","groove","ridge" |
background |
1. 指定背景颜色 2. 默认值由系统指定 |
bg | 跟 background 一样 |
borderwidth |
1. 指定边框宽度 2. 默认值是 0 |
bd | 跟 borderwidth 一样 |
command |
1. 当滚动条更新时回调的函数 2. 通常的是指定对应组件的 xview() 或 yview() 方法 |
cursor |
1. 指定当鼠标在上方飘过的时候的鼠标样式 2. 默认值由系统指定 |
elementborderwidth |
1. 指定滚动条和箭头的边框宽度 2. 默认值是 -1(表示使用 borderwidth 选项的值) |
highlightbackground |
1. 指定当滚动条没有获得焦点的时候高亮边框的颜色 2. 默认值由系统指定 |
highlightcolor |
1. 指定当滚动条获得焦点的时候高亮边框的颜色 2. 默认值由系统指定 |
highlightthickness |
1. 指定高亮边框的宽度 2. 默认值是 0(不带高亮边框) |
jump |
1. 指定当用户拖拽滚动条时的行为 2. 默认值是 False,滚动条的任何一丝变动都会即刻调用 command 选项指定的回调函数 3. 设置为 True 则当用户松开鼠标才调用 |
orient |
1. 指定绘制 "horizontal"(垂直滚动条)还是 "vertical"(水平滚动条) 2. 默认值是 VERTICAL |
relief |
1. 指定边框样式 2. 默认值是 "sunken" 3. 可以选择 "flat","raised","groove","ridge" |
repeatdelay |
1. 该选项指定鼠标左键点击滚动条凹槽的响应时间 2. 默认值是 300(毫秒) |
repeatinterval |
1. 该选项指定鼠标左键紧按滚动条凹槽时的响应间隔 2. 默认值是 100(毫秒) |
takefocus |
1. 指定使用 Tab 键可以将焦点移到该 Scrollbar 组件上 2. 默认是开启的,可以将该选项设置为 False 避免焦点在此组件上 |
troughcolor |
1. 指定凹槽的颜色 2. 默认值由系统指定 |
width |
1. 指定滚动条的宽度 2. 默认值是 16 像素 |
方法
activate(element)
-- 显示 element 参数指定的元素的背景颜色和样式
-- element 参数可以设置为:"arrow1"(箭头1),"arrow2"(箭头2)或 "slider"(滑块)
delta(deltax, deltay)
-- 给定一个鼠标移动的范围 deltax 和 deltay(像素为单位,deltax 表示水平移动量,deltay 表示垂直移动量),然后该方法返回一个浮点类型的值(范围 -1.0 ~ 1.0)
-- 这通常在鼠标绑定上使用,用于确定当用户拖拽鼠标时滑块的如何移动
fraction(x, y)
-- 给定一个像素坐标 (x, y),该方法返回最接近给定坐标的滚动条位置(范围 0.0 ~ 1.0)
get()
-- 返回当前滑块的位置 (a, b)
-- a 值表示当前滑块的顶端或左端的位置,b 值表示当前滑块的底端或右端的位置(范围 0.0 ~ 1.0)
identify(x, y)
-- 返回一个字符串表示指定位置下(如果有的话)的滚动条部件
-- 返回值可以是:"arrow1"(箭头1),"arrow2"(箭头2)、"slider"(滑块)或 ""(啥都没有)
set(*args)
-- 设置当前滚动条的位置
-- 如果设置则需要两个参数 (first, last),first 表示当前滑块的顶端或左端的位置,last 表示当前滑块的底端或右端的位置(范围 0.0 ~ 1.0)
Tkinter 组件详解(九):Scrollbar相关推荐
- Tkinter组件详解(五):Listbox和Scrollbar
Tkinter组件详解之Listbox Listbox(列表框)组件用于显示一个选择列表.Listbox 只能包含文本项目,并且所有的项目都需要使用相同的字体和颜色.根据组件的配置,用户可以从列表中选 ...
- Tkinter 组件详解(十):Scale
Tkinter 组件详解之Scale Scale(刻度)组件看起来像是一个带数据的 Scrollbar(滚动条)组件,但事实上它们是不同的两个东东.Scale 组件允许用于通过滑动滑块来选择一个范围内 ...
- Tkinter 组件详解(七):Entry
Tkinter 组件详解之Entry Entry(输入框)组件通常用于获取用户的输入文本. 何时使用 Entry 组件? Entry 组件仅允许用于输入一行文本,如果用于输入的字符串长度比该组件可显示 ...
- Tkinter 组件详解(八):Listbox
Tkinter 组件详解之Listbox Listbox(列表框)组件用于显示一个选择列表.Listbox 只能包含文本项目,并且所有的项目都需要使用相同的字体和颜色.根据组件的配置,用户可以从列表中 ...
- Tkinter 组件详解(一):Label
Tkinter 组件详解之Label Label(标签)组件用于在屏幕上显示文本或图像.Label 组件仅能显示单一字体的文本,但文本可以跨越多行.另外,还可以为其中的个别字符加上下划线(例如用于表示 ...
- Tkinter 组件详解(五):Frame
Tkinter 组件详解之Frame Frame(框架)组件是在屏幕上的一个矩形区域.Frame 主要是作为其他组件的框架基础,或为其他组件提供间距填充. 何时使用 Frame 组件? Frame 组 ...
- Tkinter 组件详解(四):Radiobutton
Tkinter 组件详解之Radiobutton Radiobutton(单选按钮)组件用于实现多选一的问题.Radiobutton 组件可以包含文本或图像,每一个按钮都可以与一个 Python 的函 ...
- Tkinter 组件详解(十九):Toplevel
Toplevel(顶级窗口)组件类似于 Frame 组件,但 Toplevel 组件是一个独立的顶级窗口,这种窗口通常拥有标题栏.边框等部件. 何时使用 Toplevel 组件? Toplevel 组 ...
- Tkinter 组件详解(十八):PanedWindow
PanedWindow 组件(Tk8.4 新增)是一个空间管理组件.跟 Frame 组件类似,都是为组件提供一个框架,不过 PanedWindow 允许让用户调整应用程序的空间划分. 何时使用 Pan ...
最新文章
- Docker从入门到实践
- Ubuntu下apt-get命令详解
- 鸟哥的Linux私房菜(服务器)- 第六章、 Linux 网络侦错
- 将jOOQ与Spring结合使用:代码生成
- a标签点击跳转失效--IE6、7的奇葩bug
- Python二叉树遍历
- android studio1.5 for mac,适用于Mac的Android Studio 1.5.x随机崩溃
- Vue (响应式原理-模拟-2-Observer)
- vlookup使用步骤_使用vlookup出错,看看原因多为这几个!快来看看!
- LeetCode OJ - Best Time to Buy and Sell Stock III
- 计算机械效率的公式四种,功功率机械效率复习题超全
- 作为移动开发者,你应该了解Baas(后端即服务)
- 【ichart】简单的统计图表ichart.js的使用
- 苹果系统如何添加服务器的打印机,哪位清楚macbookair如何添加打印机
- 黑客第二课:脱屌第一步(主要讲unix-like系统的初步知识)
- LoadBalancer整合springboot
- mysql的索引缺点_Sqlite数据库中索引的使用、索引的优缺点
- 长沙哪个服务器网速最快,5G网络湖南长沙首秀?网速是4G的60倍,快的让人无法想象...
- jQuery中的动画 -- 案例
- 程序员真实故事系列 ---阅读书籍计划