在本文中,将介绍 tkinter Scrollbar 滚动条小部件以及如何将其链接到其他可滚动的小部件。
Scrollbar 滚动条小部件允许用户浏览窗口中显示不完整的内容,通常与文本框、列表框和画布等小部件一起使用,以处理大量数据。
要使用滚动条小部件,需要创建一个滚动条小部件,将滚动条与可滚动小部件链接起来。
使用构造函数创建滚动条。
scrollbar = tk.Scrollbar(
master,
orient=vertical,
command=widget.yview
)
在此语法中,orient 参数指定滚动条是水平滚动还是垂直滚动。command 参数允许滚动条与可滚动小部件的关联的过程。
文本小部件添加滚动条
import tkinter as tk
root = tk.Tk()
root.geometry(600x400)
root.title(Scrollbar 滚动条演示)
# 创建文本小部件
text = tk.Text(root, height=, width=, font=(Arial, ), wrap=none)
# 创建垂直滚动条
scrollbar1 = tk.Scrollbar(root, orient=vertical, command=text.yview)
scrollbar1.pack(side=tk.RIGHT, fill=y)
# 创建水平滚动条
scrollbar2 = tk.Scrollbar(root, orient=horizontal, command=text.xview)
scrollbar2.pack(side=tk.BOTTOM, fill=x)
# 将滚动条与文本小部件关联
text[yscrollcommand] = scrollbar1.set
text[xscrollcommand] = scrollbar2.set
text.pack(side=tk.LEFT, fill=both)
for i in range(1,):
position = f{i}.0
text.insert(position,fLine {i}\n);
root.mainloop()
列表框添加滚动条
import tkinter as tk
root = tk.Tk()
root.geometry(600x400)
root.title(Scrollbar 滚动条演示)
# 创建列表框小部件
listbox = tk.Listbox(root, width=, height=)
listbox.pack(side=tk.LEFT)
# 创建垂直滚动条
scrollbar1 = tk.Scrollbar(root, orient=vertical, command=listbox.yview)
scrollbar1.pack(side=tk.RIGHT, fill=y)
# 将滚动条与列表框小部件关联
listbox[yscrollcommand] = scrollbar1.set
for i in range(1,):
listbox.insert(tk.END,fLine {i}\n);
root.mainloop()
画布添加滚动条
import tkinter as tk
root = tk.Tk()
root.geometry(600x400)
root.title(Scrollbar 滚动条演示)
# 创建canvas 画布
canvas = tk.Canvas(root, bg=white, scrollregion=(0,0,,))
#创建垂直滚动条
scrollbar1 = tk.Scrollbar(root, orient=vertical, command=canvas.yview)
scrollbar1.pack(side=tk.RIGHT, fill=y)
# 创建水平滚动条
scrollbar2 = tk.Scrollbar(root, orient=horizontal, command=canvas.xview)
scrollbar2.pack(side=tk.BOTTOM, fill=x)
# 将滚动条与列表框小部件关联
canvas[yscrollcommand] = scrollbar1.set
canvas[xscrollcommand] = scrollbar2.set
canvas.pack(side=tk.LEFT, expand = True, fill = both)
canvas.create_rectangle(, , , , fill=blue)
root.mainloop()
Scrollbar 滚动条常用选项
选项 | 描述 |
activebackground | 获得焦点时的背景颜色。 |
bg | 背景颜色。 |
bd | 边框大小。默认 2 像素。 |
cursor | 鼠标指针类型。 |
command | 调用的关联过程。 |
elementborderwidth | 滑块边框宽度。默认 -1。 |
highlightthickness | 获得焦点时高光粗细。 |
highlightbackground | 未处于焦点的突出显示颜色。 |
highlightcolor | 获得焦点时的突出显示颜色。 |
jump | 控制滚动跳转的行为。 |
orient | 滚动条的方向 horizontal 或 vertical。 |
width | 滚动条的宽度。 |
troughcolor | 内部的颜色。 |