Skip to content

Scrollbar 组件

虽然滚动条是作为一个独立的组件存在,不过平时它都是几乎与其他组件配合使用的。下面例子演示如何使用垂直滚动条。

为了在某个组件上安装垂直滚动条,需要做两件事:

(1)设置该组件的 yscrollbarcommand 选项为 Scrollbar 组件的 set() 方法;

(2)设置 Scrollbar 组件的 command 选项为该组件的 yview() 方法。

py
import tkinter as tk

root = tk.Tk()
root.geometry('500x300')
# 1. 创建滚动窗口并布局到页面上
sb = tk.Scrollbar(root)
sb.pack(side=tk.RIGHT, fill=tk.Y)

text = tk.Text(root, font=('宋体', 18))
text.pack(side=tk.LEFT, fill=tk.BOTH)

# 插入数据
for i in range(1000):
    text.insert(tk.END, str(i) + '\n')

# 2. 设置 Text 文本框的 y 方向滚动事件
text.config(yscrollcommand=sb.set)

# 3. 将滚动栏绑定到文本框组件上
sb.config(command=text.yview)

root.mainloop()

分析:事实上这是一个互联互通的过程。当用户操作滚动条进行滚动的时候,滚动条响应滚动并同时通过 Listbox 组件的 yview() 方法滚动列表框里的内容;同样,当列表框中可视范围发生改变的时候,Listbox 组件通过调用 Scrollbar 组件的 set() 方法设置滚动条的最新位置。

image-20210221145100652