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

news2024/11/18 22:24:27

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.set
    self.canv['yscrollcommand'] = self.scrollY.set

笔记:

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

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

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

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

相关文章

CSS学习笔记03

CSS笔记03 盒子模型 什么是盒子模型 概念: CSS 盒子模型就是在网页设计中经常用到的一种思维模型,是 CSS 布局的基石,主要规定了元素是如何显示的以及元素间的相互关系。定义所有元素都可以有像盒子一样的平面空间和外形。包含内容区、内边…

汉服网上购物商城穿搭交流的微信小程序的设计与实现

社会的发展和科学技术的进步,互联网技术越来越受欢迎。手机也逐渐受到广大人民群众的喜爱,也逐渐进入了每个用户的使用。手机具有便利性,速度快,效率高,成本低等优点。 因此,构建符合自己要求的操作系统是非…

Redis项目实战——优惠券秒杀

目录 Redis自增功能解决全局唯一IDRedis实现优惠券秒杀的主要思路实现过程中出现的问题及解决方法超卖问题方案1 悲观锁方案2 乐观锁 一人一单问题分布式锁如何用Redis实现分布式锁? Redis优化秒杀消息队列实现异步秒杀List发布订阅模式Stream Redis自增功能解决全局…

通过RISC-V预认证解决方案应对功能安全挑战

安全之安全(security)博客目录导读 2023 RISC-V中国峰会 安全相关议题汇总 说明:本文参考RISC-V 2023中国峰会如下议题,版权归原作者所有。

Nuxt3_2_SEO and Meta+Transitions

1. SEO and Meta 使用强大的head配置、可组合组件和组件来改善nuxt应用的SEO。 nuxt开箱即用,提供了相同的默认值,如果需要,你可以覆盖这些默认值。 charset: utf-8viewport: widthdevice-width, initial-scale1 可以在nuxt.config.ts中进…

Unity3D 连接 SQLite 作为数据库基础功能【详细图文教程】

一、简单介绍一下SQLite的优势(来自ChatGPT) 轻量级: SQLite是一个嵌入式数据库引擎,它的库文件非常小巧,没有独立的服务器进程,适用于嵌入到其他应用程序中,对于轻量级的项目或移动应用程序非常适用。零配…

云原生Kubernetes:K8S概述

目录 一、理论 1.云原生 2.K8S 3.k8s集群架构与组件 二、总结 一、理论 1.云原生 (1)概念 云原生是一种基于容器、微服务和自动化运维的软件开发和部署方法。它可以使应用程序更加高效、可靠和可扩展,适用于各种不同的云平台。 如果…

执行公开网数据采集-技术人员撤退

首先逼逼,此贴仅为秀肌肉,技术人员想学习的话可以绕道了 打开控制台,看cookie,ST,某数 第一个请求412,看VM 然后就是替换js,hook,之类的,扣代码流程,此处省…

C语言:函数原型声明时的参数列表

相关阅读 C语言专栏https://blog.csdn.net/weixin_45791458/category_12423166.html 在C语言中,使用函数前,要么对函数进行了定义,要么对函数原型进行了声明,ANSI C形式的函数原型声明形式如下: void show(char ch, …

nvm use node版本无效问题

没想到使用nvm还折腾一上午,安装nvm 1.1之后,发现 nvm install 16.20.2 nvm use 16.20.2 之后,node -v 根本不生效,找了很久发现少设置了一些变量,可以参考如下前人经验:nvm use 命令失效 - 简书 (jians…

成都优优聚优质美团服务机构!

成都优优聚是一家专业的美团代运营服务机构,其优秀的团队和丰富的经验使其成为了众多商家的首选合作伙伴。下面就让我们一起来了解一下成都优优聚做美团代运营的优势和特点。 首先,成都优优聚拥有一支专业高效的运营团队。团队成员均具备丰富的美团运营经…

2022年03月 C/C++(五级)真题解析#中国电子学会#全国青少年软件编程等级考试

第1题:数字变换 给定一个包含 5 个数字(0-9)的字符串, 例如 “02943”, 请将“12345”变换到它。 你可以采取 3 种操作进行变换 (1)交换相邻的两个数字 (2)将一个数字加 …

ssm学生公寓管理系统的设计与实现

ssm学生公寓管理系统的设计与实现106 开发工具:idea 数据库mysql5.7 数据库链接工具:navcat,小海豚等 技术:ssm 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归…

d3dcompiler_43.dll丢失怎么修复,分享几种修复d3dcompiler_43.dll的方法

不少人可能看到d3dcompiler_43.dll这个文件会感觉到陌生,是的,因为这个文件一般来说是很少丢失的,但是还是会出现d3dcompiler_43.dll丢失的情况的,今天主要是来给大家详细的说说d3dcompiler_43.dll丢失怎么修复的相关方法。 一.分…

Python Flask Web开发二:数据库创建和使用

前言 数据库在 Web 开发中起着至关重要的作用。它不仅提供了数据的持久化存储和管理功能,还支持数据的关联和连接,保证数据的一致性和安全性。通过合理地设计和使用数据库,开发人员可以构建强大、可靠的 Web 应用程序,满足用户的…

SpringBoot 2.7 集成 Netty 4 实现 UDP 通讯

文章目录 1 摘要2 核心 Maven 依赖3 核心代码3.1 服务端事务处理器(DemoUdpNettyServerHandler)3.2 服务端连接类(InitUdpNettyServer)3.3 客户端事务处理类(DemoUdpNettyClientHandler)3.4 客户端连接类(DemoUdpNettyClient) 4 高并发性能配置5 推荐参考资料6 Github 源码 1 摘…

ROLL.DBF回滚表空间增长问题(达梦数据库)

达梦数据库 - 回滚表空间增长问题 环境介绍1 环境搭建1.1 创建表与测试数据1.2 查询待提交的数据量1.3 查询回滚表空间使用情况1.3.1 插入数据前查询结果1.3.2 插入数据后未提交事务查询结果1.3.3 插入数据后提交事务查询结果 环境介绍 达梦数据库ROLL.DBF 在某些业务系统厂商…

防破解暗桩思路:检查菜单是否被非法修改过源码

本篇文章属于《518抽奖软件开发日志》系列文章的一部分。 我在开发《518抽奖软件》(www.518cj.net)的时候,为了防止被破解,需用添加一些暗桩,在合适的时机检查软件是否被非法修改过,如果被非法修改就做出提…

【位运算】位运算常用技巧总结

目录 前言 一.常见的小问题 1.给定一个数n,确定它的二进制表示中的第x位是0还是1 2.给定一个数n,将它的二进制表示中的第x位修改成1 3.给定一个数n,将它的二进制表示中的第x位修改成0 4.给定一个数n,提取它的二进制表示中最右侧的1&…

AUTOSAR开发工具DaVinci Configurator里的Modules

DaVinci Configurator 里面有个Module这个概念。 如你所想,基本上跟AUTOSAR架构里面的Module相对应 从软件的Project菜单中的Basic Editor项可以打开 打开这个菜单后,会看到很多Modules项以及其相关配置项 这个Basic Editor显示出整个ECU配置中的所有…