tkinter–Scrollbar組件
儘管Listbox組件可以提供一個列表選項,但是當列表長度比較長時,Listbox組件就顯現出明顯的不足:很容易被用戶忽略沒有顯示出來的選項,這個時候,我們就可以用到Scrollbar組件。
目錄:
1.介紹Scrollbar組件
2.案列
2.1用pack佈局管理器實現滾動條;
2.2用grid佈局管理器實現滾動條;
3.總結
1.介紹Scrollbar組件
滾動條是作爲一個獨立的組件存在,但它幾乎與其他組件能配合使用,爲了能在某個組件上使用滾動條,需要作如下操作:
1.設置該組件的yscrollbarcommand選項爲Scrollbar組件的set()方法;
2.設置Scrollbar組件的command選項爲該組件的yview()方法。
2.案列
2.1 用pack佈局管理器實現滾動條
import tkinter as tk
root=tk.Tk()
sb=tk.Scrollbar(root)
sb.pack(side=tk.RIGHT,fill=tk.Y)
lb=tk.Listbox(root,yscrollcommand=sb.set)
for i in range(1000):
lb.insert(tk.END,str(i))
lb.pack(side=tk.LEFT,fill=tk.BOTH)
sb.config(command=lb.yview)
root.mainloop()
運行結果:
2.2用grid佈局管理器實現滾動條
import tkinter as tk
root=tk.Tk()
sb=tk.Scrollbar(root)
sb.grid(row=0,column=1)
lb=tk.Listbox(root,yscrollcommand=sb.set)
for i in range(1000):
lb.insert(tk.END,str(i))
lb.grid(row=0,column=0)
sb.config(command=lb.yview)
root.mainloop()
運行結果:
可以發現此時的滾動條的高度不長,顯示出來的效果並不怎麼好。
我們可以將原來第七行代碼改成這樣:
sb.grid(row=0,column=1,ipady=65)
來看一下此時的效果:
3.總結
其實這是一個互聯互通的過程,當用戶用鼠標撥動滾動條的時候,Listbox組件的yview()方法也同時滾動列表框上的內容;同樣,當用戶用鼠標撥動列表框裏的內容是,Listbox組件通過調用Scrollbar組件的set()方法變更滾動條的相應位置。