【Tkinter系列09/15】小部件(Scrollbar

22. 小部件Scrollbar

许多小部件(如列表框和画布)可以 就像将窗口滑动到更大的虚拟区域一样。你 可以将滚动条小部件连接到它们,为用户提供 相对于内容滑动视图的方式。 下面是带有关联条目小部件的屏幕截图 滚动条小部件:

  • 滚动条可以是水平的,如上所示, 或垂直。具有两个可滚动的小部件 维度(如画布或列表框)可以同时具有两者 水平滚动条和垂直滚动条。

  • 滑块滚动 拇指,是凸起的矩形, 显示当前滚动位置。

  • 两个三角形箭头在 每一端都用于移动小位置 步骤。左边或上面的那个叫,右边或底部的叫 叫。arrow1arrow2

  • 低谷是凹陷的样子 箭头和滑块后面可见的区域。这 槽分为两个命名区域(滑块上方或左侧) 和(在下方或右侧 滑块)。trough1trough2

  • 滑块相对于长度的大小和位置 的整个小部件中,显示大小和位置 相对于其总大小的视图。例如,如果 垂直滚动条与列表框相关联,并且 它的滑块从高度的 50% 延伸到 75% 滚动条,这意味着可见部分的 列表框显示整个列表的该部分开始 在中途标记处,在四分之三处结束 马克。

  • 在水平滚动条中,单击 B1(按钮 1) 左箭头将视图移动少量到 左边。单击右侧箭头上的 B1 可移动 按右边的金额查看。对于垂直 滚动条,单击向上和向下指向 箭头将视图向上或向下少量移动。 请参阅关联小部件的讨论 找出这些操作移动的确切金额 视图。

  • 用户可以拖动带有 B1 或 B2 的滑块(中间 按钮)以移动视图。

  • 对于水平滚动条,单击槽中的 B1 滑块左侧的视图向左移动 页面,然后单击 B1 在 滑块将视图向右移动一页。对于一个 垂直滚动条,相应的动作移动 向上或向下查看页面。

  • 在槽中的任意位置单击 B2 可移动滑块 使其左端或顶端位于鼠标处,或作为 尽可能接近它。

一化位置 滚动条是指闭合区间 [0.0, 1.0],用于定义滑块的位置。对于垂直 滚动条,位置 0.0 位于顶部,1.0 位于 底;对于水平滚动条,位置 0.0 位于 左端和右端 1.0。

创建新小部件作为 根窗口或框架的子窗口:Scrollbarparent

    w = tk.Scrollbar(parent, option, ...)

构造函数返回新小部件。滚动条的选项包括:Scrollbar

表 31.滚动条小部件选项

activebackground滑块和箭头的颜色当 鼠标在他们身上。请参见第 5.3 节 “颜色”。
activerelief默认情况下,滑块以浮雕样式显示。要显示 当鼠标悬停在 滑 块。tk.RAISED
bgbackground颜色 鼠标未结束时的滑块和箭头 他们。
bdborderwidth整个 3-D 边框的宽度 槽的周长,以及 箭头和滑块上的三维效果。违约 是低谷周围没有边框,一个两像素 箭头和滑块周围的边框。为 可能的值,请参见第 3.5 节 “尺寸”。
command每当滚动条出现时要调用的过程 搬。有关调用序列的讨论, 请参见第 22.1 节 “滚动条命令回调”。
cursor鼠标悬停在 滚动条。请参见第 5.8 节 “游标”。
elementborderwidth箭头周围的边框宽度和 滑 块。默认值为 ,表示使用 选项的值。elementborderwidth=-1borderwidth
highlightbackground颜色 滚动条没有焦点时突出显示 重点。请参见第 53 节 “焦点:路由键盘输入”。
highlightcolor颜色 当滚动条具有焦点时,焦点突出显示。
highlightthickness焦点的粗细突出显示。默认值为 。设置为 禁止显示焦点高亮。10
jump此选项控制用户拖动时发生的情况 滑块。通常 (), 滑块的每一次小拖动都会导致调用回调。如果您设置 此选项为 ,回调不是 调用,直到用户释放鼠标按钮。jump=0command1
orient设置为 水平滚动条,用于垂直滚动条(默认方向)。orient=tk.HORIZONTALorient=tk.VERTICAL
relief控制浮雕 小部件的样式;默认样式为 。此选项无效 在窗口中。tk.SUNKEN
repeatdelay此选项控制按钮 1 的长度 在滑块启动之前按住低谷 反复朝那个方向移动。默认值为 ,单位为 毫秒。repeatdelay=300
repeatinterval此选项控制滑块移动的频率 在槽中按住按钮 1 时重复此操作。 默认值为 ,并且 单位为毫秒。repeatinterval=100
takefocus通常,您可以通过滚动条按 Tab 键调整焦点 控件;请参见第 53 节 “焦点:路由键盘输入”。如果您不想要此设置,请设置 行为。滚动条的默认键绑定 允许用户使用←和→ 箭头键移动水平滚动条,它们 可以使用 ↑ 和 ↓ 键移动 垂直滚动条。takefocus=0
troughcolor颜色 槽。
width滚动条的宽度(其 y 维度如果 水平,如果垂直,则为 x 维)。 默认值为 16。有关可能的值,请参见第 5.1 节 “维度”。

滚动条对象上的方法包括:

.activate(element=None)

如果未提供参数,则此方法返回一个 的字符串、、或 ,具体取决于鼠标所在的位置。为 例如,如果鼠标位于滑块上,则该方法返回。空字符串为 如果鼠标当前不在任何一个上,则返回 三个控件。'arrow1''arrow2''slider''''slider'

若要突出显示其中一个控件(使用其浮雕样式和颜色),请调用此方法 并传递一个字符串,标识要标识的控件 突出显示、 、 或 之一。activereliefactivebackground'arrow1''arrow2''slider'

.delta(dxdy)

给定鼠标移动(以像素为单位),此方法返回应添加到当前滑块位置的值 以实现相同的运动。该值必须位于 闭合区间 [-1.0, 1.0]。(dxdy)float

.fraction(xy)

给定一个像素位置,此方法返回相应的 区间 [0.0, 1.0] 中的归一化滑块位置 最接近该位置。(xy)

.get()

返回两个数字 (, ),描述 滑块的当前位置。该值给出 滑块左边缘或上边缘的位置,用于 分别为水平和垂直滚动条;价值 给出右边缘或下边缘的位置。每 值位于区间 [0.0, 1.0] 中,其中 0.0 是 最左边或顶部位置,1.0 是最右边或 底部位置。例如,如果滑块扩展 从中途到四分之三 低谷,你可能会得到元组 (0.5,0.75)。abab

.identify(xy)

此方法返回一个字符串,指示哪个 (if 任何)的滚动条组件位于 给定坐标。 返回值为 、 或 之一 空字符串(如果该位置) 不在任何滚动条组件上。(xy)'arrow1''trough1''slider''trough2''arrow2'''

.set(firstlast)

要将滚动条连接到另一个小部件,请将 的 或 设置为滚动条的方法。参数具有相同的 含义为方法返回的值。请注意,移动 滚动条的滑块移动 相应的小部件。wwxscrollcommandyscrollcommand.set.get()

22.1. 回调Scrollbar command

当用户操作滚动条时,滚动条 调用其回调。论点 此调用取决于用户执行的操作:command

  • 当用户请求移动一个时 “单位”向左或向上,例如 单击左侧或顶部箭头上的按钮 B1,即 回调的参数如下所示:

        command(tk.SCROLL, -1, tk.UNITS)
  • 当用户请求向右移动一个单元时 或向下,参数为:

        command(tk.SCROLL, 1, tk.UNITS)
  • 当用户请求向左移动一页或 向上:

        command(tk.SCROLL, -1, tk.PAGES)
  • 当用户请求向右移动一页时 或向下:

        command(tk.SCROLL, 1, tk.PAGES)
  • 当用户将滑块拖动到范围内的值时 [0,1],其中 0 表示一直向左或向上,1 表示一直向右或向下,调用是:f

        command(tk.MOVETO, f)

这些调用序列与 画布、列表框和文本小组件的 和 方法。小部件没有方法。请参见第 10.1 节 “滚动条目小部件”。.xview().yview()Entry.xview()

22.2. 将 a 连接到另一个 控件Scrollbar

下面是一个代码片段,显示了画布的创建 带有水平和垂直滚动条。在此 片段,被假定为一个小部件。selfFrame

   self.canv = tk.Canvas(self, width=600, height=400,scrollregion=(0, 0, 1200, 800))self.canv.grid(row=0, column=0)self.scrollY = tk.Scrollbar(self, orient=tk.VERTICAL,command=self.canv.yview)self.scrollY.grid(row=0, column=1, sticky=tk.N+tk.S)self.scrollX = tk.Scrollbar(self, orient=tk.HORIZONTAL,command=self.canv.xview)self.scrollX.grid(row=1, column=0, sticky=tk.E+tk.W)self.canv['xscrollcommand'] = self.scrollX.setself.canv['yscrollcommand'] = self.scrollY.set

笔记:

  • 连接是双向的。画布的选项必须连接到 水平滚动条的方法和滚动条的选项必须连接到画布的方法。垂直滚动条和 画布必须具有相同的相互连接。xscrollcommand.setcommand.xview

  • .grid() 方法上的选项 对滚动条的调用迫使它们仅拉伸 足以适合相应尺寸 帆布。sticky

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

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

相关文章

伦敦银交易时间怎么选择?

伦敦银和伦敦金都是全球性的交易品种,一般的现货贵金属交易平台,都可以同时经营这两个品种,而且它们的交易时间是一致的,以香港市场的平台为例,基本上交易时间都会从北京周一的早上7点,延续到周六凌晨5点左…

虚拟化技术原理

计算虚拟化 介绍 把物理主机上物理资源(CPU,内存,IO外设),通过虚拟化层抽象成超量、等量的逻辑资源(虚拟CPU,虚拟内存,虚拟IO设备),然后重新组合形成新的虚…

跨境海淘攻略:如何实现自己批量养买家账号海淘

近年来,随着互联网的发展,网购已经成为人们日常生活中不可或缺的一部分。不仅在国内购买商品,在跨境电商行业越来越成熟,很多的消费者开始选择购买国外平台商品,价格相比国内专柜来说会更为优惠。因此,海淘…

【C++初阶】反向迭代器的实现

👦个人主页:Weraphael ✍🏻作者简介:目前学习C和算法 ✈️专栏:C航路 🐋 希望大家多多支持,咱一起进步!😁 如果文章对你有帮助的话 欢迎 评论💬 点赞&#x1…

【基于空间纹理的残差网络无监督Pansharpening】

Unsupervised Pansharpening method Using Residual Network with Spatial Texture Attention (基于空间纹理的残差网络无监督泛锐化方法) 近年来,深度学习已经成为最受欢迎的泛锐化工具之一,许多相关方法已经被研究并反映出良好…

使用SpaceDesk连接平板作为电脑副屏详细步骤教程

文章目录 下载安装PC端安装安卓端安装 配置步骤PC端安卓端 连接 SpaceDesk官网链接https://www.spacedesk.net/ (应该是需要科学上网才能进入) SpaceDesk它可以连接安卓,苹果的平板,手机等,也可以连接其他可以打开网页(HTML5)的设备。 这里我…

Mysql读取binlog并分析 binlog

1,Mysql 开启 binlog 配置文件中增加 [mysqld] log-binmysql-bin 2.常用 binlog命令 # 是否启用binlog日志 show variables like log_bin;# 查看详细的日志配置信息 show global variables like %log%;# 查看binlog的目录 show global variables like "%l…

《Flink学习笔记》——第十二章 Flink CEP

12.1 基本概念 12.1.1 CEP是什么 1.什么是CEP? 答:所谓 CEP,其实就是“复杂事件处理(Complex Event Processing)”的缩写;而 Flink CEP,就是 Flink 实现的一个用于复杂事件处理的库&#xff08…

TCP协议基础

一: TCP协议是什么? TCP协议是基于面向连接,可靠传输,基于字节流的传输层通信协议 1. 面向连接 TCP协议是一种面向连接的协议,意味着在双方在建立数据传输之前,需要进行一个逻辑上的连接,且是…

(vue)Vue项目中使用jsPDF和html2canvas生成PDF

(vue)Vue项目中使用jsPDF和html2canvas生成PDF 效果&#xff1a; 安装与使用 1.&#xff1a;安装jsPDF和html2canvas npm install jspdf html2canvas2.在需要生成PDF文档的组件中引入jsPDF和html2canvas <template><div><el-button type"primary"…

SSL/TLS协议的概念、工作原理、作用以及注意事项

个人主页&#xff1a;insist--个人主页​​​​​​ 本文专栏&#xff1a;网络基础——带你走进网络世界 本专栏会持续更新网络基础知识&#xff0c;希望大家多多支持&#xff0c;让我们一起探索这个神奇而广阔的网络世界。 目录 一、SSL/TLS协议的基本概念 二、SSL/TLS的工作…

el-table 单击某一行,该行的前面的多选框显示已勾选

目 录 官网&#xff1a; 1. 单页面 2. table是组件 案例&#xff1a; 官网&#xff1a; 1. 单页面 通过单击获取当前行的数据&#xff0c;然后传给选中显示勾选的方法。 <template><el-tableref"multipleTable":data"tableData"tooltip-eff…

linux 下安装chrome 和 go

1. 安装google-chrome 1.1 首先下载google-chrome.deb安装包 之后 安装 gdebi包 sudo apt install gdebi 1.2 安装所要安装的软件 sudo gdebi code_1.81.1-1691620686_amd64.deb 1.3 解决Chrome无法启动问题 rootubuntu:~/Downloads# whereis google-chrome google-chrome…

Windows SQLYog连接不上VMbox Ubuntu2204 的Mysql解决方法

Windows SQLYog连接不上VMbox Ubuntu2204 的Mysql解决方法 解决方法&#xff1a; 1、先检查以下mysql的端口状态 netstat -anp|grep mysql如果显示127.0.0.1:3306 则说明需要修改&#xff0c;若为: : :3306&#xff0c;则不用。 在**/etc/mysql/mysql.conf.d/mysqld.cnf**&am…

java比较器、迭代器和枚举类型详解

文章目录 1. 比较器1.1 Comparable实例&#xff1a;对自定义对象进行排序 1.2 Comparator实例&#xff1a;对自定义对象进行排序 1.3 equals1.3.1 equals介绍1.3.2 详解 2. 迭代器2.1 Iterator2.2 ListIterator 3. 枚举3.1 枚举访问3.1 枚举细节 1. 比较器 比较器指的是集合存…

【玩玩Vue】使用el-menu作为菜单时,通过一二级路由控制菜单高亮

原文作者&#xff1a;我辈李想 版权声明&#xff1a;文章原创&#xff0c;转载时请务必加上原文超链接、作者信息和本声明。 文章目录 前言一、Vue路由二、路由一级控制高亮&#xff08;常用&#xff09;1.vue中路由文件2.网址样式3.Vue文件4.$route的内容 三、路由二级控制高亮…

element中Notification组件(this.$notify)自定义样式

1、自定义样式效果 2、vue代码 this.notifications this.$notify({title: ,dangerouslyUseHTMLString: true,duration: obj.remindMethod3 ? 0:4500,customClass: notify-warning,offset: 50,showClose: false,message: this.$createElement("div",null,[this.$…

手把手教你写出第一个C语言程序

Hello, World! 1. 前言2. 准备知识2.1 环境2.2 文件的分类2.3 注释2.3.1 注释的作用2.3.2 注释的两种风格2.3.2.1 C语言的注释风格2.3.2.2 C的注释风格 2.3.3 VS中注释和取消注释的快捷键 3. 开始演示3.1 创建项目3.2 创建源文件3.3 写代码3.4 编译链接运行 4. 代码解释4.1 写主…

com.google.guava:guava 组件安全漏洞及健康分析

组件简介 维护者google组织许可证类型Apache-2.0首次发布2010 年 4 月 26 日最新发布时间2023 年 8 月 1 日GitHub Star48189GitHub Fork10716依赖包28,694依赖存储库219,576 Guava 是 Google 的一组核心 Java 库&#xff0c;其中包括新的集合类型&#xff08;例如 multimap 和…

前端:html实现页面切换、顶部标签栏(可删、可切换,点击左侧超链接出现标签栏)

一、在一个页面&#xff08;不跨页面&#xff09; 效果&#xff1a; 代码 <!DOCTYPE html> <html><head><style>/* 设置标签页外层容器样式 */.tab-container {width: 100%;background-color: #f1f1f1;overflow: hidden;}/* 设置标签页选项卡的样式 …