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()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
分析:事实上这是一个互联互通的过程。当用户操作滚动条进行滚动的时候,滚动条响应滚动并同时通过 Listbox 组件的 yview() 方法滚动列表框里的内容;同样,当列表框中可视范围发生改变的时候,Listbox 组件通过调用 Scrollbar 组件的 set() 方法设置滚动条的最新位置。