Tkinter中Scrollbar控件,设置滑块位置

目的

设置滚动条滑块的位置,滑块可以随绑定控件(可滚动控件)中的内容位置的变化而变动。

代码解析

查找了相关资料,都是说使用scrollbar.set() 函数设置滑块的位置,但是没有看着具体的示例(可能是自己没有找到)。
在主函数中使用scrollbar.set() ,好像不起作用。只有绑定按钮控件,通过点击按钮,调用函数set_pos(),才可以设置滑块的位置,但是对应的文本内容没有移动。通过查看class YView。发现该类下面有一个yview_moveto()函数,参数fraction(分数,取值范围0-1).通过调用该函数,可以实现文本内容位置的变动,同时能带动滑块位置的变动。

class YView截图

在这里插入图片描述

完整示例代码

import tkinter as tk

def set_pos(event):
   # scrollbar.set(0.5, 0.5)  # 设置滑块的位置,范围从 0.0 到 1.0
   
    #设置文本的位置,滚动条的滑块会自动滚动到对应位置。0.5 表示中间位置
   text_box.yview_moveto(0.5)


root = tk.Tk()

# 创建一个文本框
text_box = tk.Text(root)
text_box.pack(side=tk.LEFT, fill=tk.BOTH)
for i in range(200):
   text_box.insert("end", f"测试文本{i}\n")

# 创建一个滚动条
scrollbar = tk.Scrollbar(root)
scrollbar.pack(side=tk.LEFT, fill=tk.Y)

# 相互绑定
text_box.config(yscrollcommand=scrollbar.set)
scrollbar.config(command=text_box.yview)

butt = tk.Button(root, text="点我")
butt.pack(side=tk.LEFT)

butt.bind("<Button-1>", set_pos)

# 在主函数中直接添加一下代码,也可以设置滑块的位置。
# text_box.yview_moveto(0.5)


root.mainloop()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值