Tkinter组件:Scrollbar-滚动条

Tkinter组件:Scrollbar

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

1. 何时使用 Scrollbar 组件?

Scrollbar 组件通常几乎与 Text 组件、Canvas 组件和 Listbox 组件一起使用,水平滚动条还能跟 Entry 组件配合。

2. 用法

下边例子我们演示如何使用垂直滚动条。为了在某个组件上安装垂直滚动条,你需要做两件事:

\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 即可。

3. 参数

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

master – 父组件

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

选项含义
activebackground1. 指定当鼠标在上方飘过的时候滑块和箭头的背景颜色 2. 默认值由系统指定
activerelief1. 指定当鼠标在上方飘过的时候滑块的样式 2. 默认值是 “raised” 3. 可以选择 “flat”,“sunken”,“groove”,“ridge”
background1. 指定背景颜色 2. 默认值由系统指定
bg跟 background 一样
borderwidth1. 指定边框宽度 2. 默认值是 0
bd跟 borderwidth 一样
command1. 当滚动条更新时回调的函数 2. 通常的是指定对应组件的 xview() 或 yview() 方法
cursor1. 指定当鼠标在上方飘过的时候的鼠标样式 2. 默认值由系统指定
elementborderwidth1. 指定滚动条和箭头的边框宽度 2. 默认值是 -1(表示使用 borderwidth 选项的值)
highlightbackground1. 指定当滚动条没有获得焦点的时候高亮边框的颜色 2. 默认值由系统指定
highlightcolor1. 指定当滚动条获得焦点的时候高亮边框的颜色 2. 默认值由系统指定
highlightthickness1. 指定高亮边框的宽度 2. 默认值是 0(不带高亮边框)
jump1. 指定当用户拖拽滚动条时的行为 2. 默认值是 False,滚动条的任何一丝变动都会即刻调用 command 选项指定的回调函数 3. 设置为 True 则当用户松开鼠标才调用
orient1. 指定绘制 “horizontal”(垂直滚动条)还是 “vertical”(水平滚动条) 2. 默认值是 VERTICAL
relief1. 指定边框样式 2. 默认值是 “sunken” 3. 可以选择 “flat”,“raised”,“groove”,“ridge”
repeatdelay1. 该选项指定鼠标左键点击滚动条凹槽的响应时间 2. 默认值是 300(毫秒)
repeatinterval1. 该选项指定鼠标左键紧按滚动条凹槽时的响应间隔 2. 默认值是 100(毫秒)
takefocus1. 指定使用 Tab 键可以将焦点移到该 Scrollbar 组件上 2. 默认是开启的,可以将该选项设置为 False 避免焦点在此组件上
troughcolor1. 指定凹槽的颜色 2. 默认值由系统指定
width1. 指定滚动条的宽度 2. 默认值是 16 像素

4. 方法

4.1 activate(element)

– 显示 element 参数指定的元素的背景颜色和样式

– element 参数可以设置为:“arrow1”(箭头1),“arrow2”(箭头2)或 “slider”(滑块)

4.2 delta(deltax, deltay)

– 给定一个鼠标移动的范围 deltax 和 deltay(像素为单位,deltax 表示水平移动量,deltay 表示垂直移动量),然后该方法返回一个浮点类型的值(范围 -1.0 ~ 1.0)

– 这通常在鼠标绑定上使用,用于确定当用户拖拽鼠标时滑块的如何移动

4.3 fraction(x, y)

– 给定一个像素坐标 (x, y),该方法返回最接近给定坐标的滚动条位置(范围 0.0 ~ 1.0)

4.4 get()

– 返回当前滑块的位置 (a, b)

– a 值表示当前滑块的顶端或左端的位置,b 值表示当前滑块的底端或右端的位置(范围 0.0 ~ 1.0)identify(x, y)

4.5 identify(x, y)

– 返回一个字符串表示指定位置下(如果有的话)的滚动条部件

– 返回值可以是:“arrow1”(箭头1),“arrow2”(箭头2)、“slider”(滑块)或 “”(啥都没有)

4.6 set(*args)

– 设置当前滚动条的位置

部件

– 返回值可以是:“arrow1”(箭头1),“arrow2”(箭头2)、“slider”(滑块)或 “”(啥都没有)

4.6 set(*args)

– 设置当前滚动条的位置

– 如果设置则需要两个参数 (first, last),first 表示当前滑块的顶端或左端的位置,last 表示当前滑块的底端或右端的位置(范围 0.0 ~ 1.0)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/697256.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Centos7 配置 DNS服务器

Centos 7 配置DNS服务器 环境描述: 一台服务器和一台用于测试的客户机 服务器IP:192.168.200.132 客户机IP:192.168.200.143 服务器配置 yum install bind bind-utils -y #安装软件包vim /etc/named.conf //编辑named主配置文件listen-on p…

kafka 图形化

介绍 idea 中的一个插件 kafkalytic,kafka 图形化 简单又强大 安装 使用界面 总体信息 数据查看

【MySQL复合查询】

文章目录 一、基本的使用案例二、多表查询三、自连接四、子查询4.1单行子查询4.2多行子查询in关键字all关键字any关键字 4.3多列子查询4.4 在from子句中使用子查询 解决多表问题的本质五、合并查询1.union2.union all 一、基本的使用案例 注明:以下案例使用的均为一…

【JavaWeb】网上蛋糕商城后台-客户管理

概念 上文中已讲解和实现了后台管理系统中的订单管理功能,本文讲解客户信息管理功能。 客户信息列表 在后台管理系统的head.jsp头部页面中点击“客户管理”向服务器发送请求 在servlet包中创建AdminUserListServlet类接收浏览器的请求 package servlet;import m…

MySQL-InnoDB数据存储结构

1、存储结构-页 索引结构提供了高效的索引方式,索引信息以及数据记录都保存在数据文件或索引文件中(本质存储在页结构中) 1.1、磁盘与内存交互的基本单位:页 在InnoDB中将数据划分为若干页,页的默认大小为&#xff…

鸿蒙开发接口Ability框架:【AbilityMonitor】

AbilityMonitor AbilityMonitor模块提供匹配满足指定条件的受监视能力对象的方法的能力,最近匹配的能力对象将保存在AbilityMonitor对象中。 说明: 本模块首批接口从API version 9 开始支持。后续版本的新增接口,采用上角标单独标记接口的起…

浅析扩散模型与图像生成【应用篇】(二十四)——Text2Live

24. Text2LIVE : Text-Driven Layered Image and Video Editing 本文提出一种文本驱动的图像和视频编辑方法。与其他方法直接对图像进行编辑的方式不同,本文提出的方法并不是基于扩散模型的,更像是一个自编码器,通过对原图编码解码输出一个新…

【Linux系统化学习】守护进程 | 序列化和反序列化

目录 前言 守护进程 会话 进程组 setsid系统调用 守护进程系统调用 再谈协议 序列化和反序列化 Json 前言 上两篇文章我们所编写的服务器,并算不上真正意义上的服务器一般的服务器都是要随时能够访问的,就像我们在任何时间段都可以打开抖音获取…

部署达梦数据库主从配置详细操作DM8

服务器配置 主库 192.168.81.128 实例名 dm-1 从库 192.168.81.129 实例名 dm-2 以下安装部署主从服务器都操作 关闭防火墙 systemctl stop firewalld && systemctl disable firewalld 注意安装前必须创建 dmdba 用户,禁止使用 root 用户安装数据库。…

参加了深圳线下组织的商业沙龙,收获颇丰

能参加本次商业沙龙也本是一连串的事情导致的,听我慢慢道来: 大概在4.13之前无意收到忘了谁发的短信了,说有个啥AI的报告会,然后我就报名了: 会上大佬还是挺多的,来了好多各界的老板和政府的领导&#xff…

class常量池、运行时常量池和字符串常量池的关系

类常量池、运行时常量池和字符串常量池这三种常量池,在Java中扮演着不同但又相互关联的角色。理解它们之间的关系,有助于深入理解Java虚拟机(JVM)的内部工作机制,尤其是在类加载、内存分配和字符串处理方面。 类常量池…

[动态规划] 完美覆盖

描述 一张普通的国际象棋棋盘,它被分成 8 乘 8 (8 行 8 列) 的 64 个方格。设有形状一样的多米诺牌,每张牌恰好覆盖棋盘上相邻的两个方格,即一张多米诺牌是一张 1 行 2 列或者 2 行 1 列的牌。那么,是否能够把 32 张多米诺牌摆放…