Tkinter 滚动条的设计
在默认的环境中Listbox是没有滚动条的,但是如果选项太多,将造成部分选项无法显示,此时可将滚动条Scrollbar控件加入Listbox。
Scrollbar控件除了可以应用在Listbox上,也可以应用在Text和Canvas控件上。
Scrollbar的使用格式如下。
Scrollbar(master, options, ...)
Scrollbar()方法的第一个参数是父对象,表示这个滚动条将建立在哪一个窗口内。下列是Scrollbar( )方法内其他常用的options参数。
(1)activebackground:当光标经过滚动条时,滚动条和方向箭头的颜色。
(2)bg or background:当光标没有经过滚动条时,滚动条和方向箭头的颜色。
(3)borderwidth或bd:边界宽度,默认是两个像素。
(4)command:滚动条移动时所触发的方法。
(5)cursor:当鼠标光标在滚动条上时的光标形状。
(6)elementborderwidth:滚动条和方向箭头的外部宽度,默认是1。
(7)highlightbackground:当滚动条没有获得焦点时的颜色。
(8)highlightcolor:当滚动条获得焦点时的颜色。
(9)highlightthickness:当获得焦点时的厚度,默认是1。
(10)jump:每次短距离地拖曳滚动条时都会触发command的方法,默认是0,如果设为1则只有放开鼠标按键时才会触发command的方法。
(11)orient:可设置HORIZONTAL/VERTICAL分别是水平轴/垂直轴。
(12)repeatdelay:单位是ms,默认是300ms,可以设置按住滚动条移动的停滞时间。
(13)takefocus:正常可以用按Tab键的方式切换滚动条成为焦点,如果设为0则取消此设置。
(14)troughcolor:滚动条槽的颜色。
(15)width:滚动条宽,默认是16。
示例1
在Listbox中创建垂直滚动条。
from tkinter import *
root = Tk()
root.title("apidemos.com") # 窗口标题
scrollbar = Scrollbar(root) # 创建滚动条
scrollbar.pack(side=RIGHT,fill=Y)
# 创建Listbox,yscrollcommand指向scrollbar.set方法
lb = Listbox(root,yscrollcommand=scrollbar.set) # 建立Listbox
for i in range(50):
lb.insert(END,"Line " + str(i))
lb.pack(side=LEFT,fill=BOTH,expand=True)
scrollbar.config(command=lb.yview)
root.mainloop()
输出:
第12行是将Listbox的选项参数yscrollcommand设为scrollbar.set,表示将Listbox与滚动条做连动。
第17行scrollbar.config( )方法主要是为scrollbar对象设置选择性参数内容,此例是设置command参数,也就是当移动滚动条时,会去执行所指定的方法,此例是执行Listbox对象lb的yview( )方法。