Scrollbar 控件通常与 Text 、Canvas和 Listbox等一起使用,水平滚动条还能跟 Entry 搭配。正确运用的关键在于orient=tk.VERTICAL、yscrollcommand=scrollbar.set和command=listbox.yview ,这些是垂直卷动条的;若要使用水平卷动条把这三个关键词换成 orient=tk.HORIZONTAL、xscrollcommand=scrollbar.set 和 command=listbox.xview。
tScroll=tk.Scrollbar(win, orient=tk.VERTICAL)
tList=tk.Listbox(win,selectmode=tk.BROWSE,yscrollcommand=tScroll.set)
tScroll.config(command=tList.yview)
例程源代码:
import pyautogui as pg
import tkinter as tk
def winOpen(W,H):
X,Y=pg.size()
W,H=480,360
X0=(X-W)//2
Y0=(Y-H)//2
winSize=str(W)+'x'+str(H)
winPos=winSize+'+'+str(X0)+'+'+str(Y0)
win.geometry(winPos)
win.resizable(False,False)
win.wm_attributes('-topmost',True)
title=u'scrollbar测试'
win.title(title)
win.update()
if __name__=='__main__':
win=tk.Tk()
winOpen(400,300)
dicA={11:'AAA',22:'BBB',33:'CCC',44:'DDD',55:'EEE',66:'FFF',77:'GGG'}
tScroll=tk.Scrollbar(win, orient=tk.VERTICAL)
tScroll.place(x=260,y=95,height=80)
tList=tk.Listbox(win,selectmode=tk.BROWSE,yscrollcommand=tScroll.set)
tList.place(x=100,y=95,width=160,height=80)
for item,value in dicA.items():
tList.insert(tk.END,str(item)+' '+value)
tScroll.config(command=tList.yview)
win.mainloop()
运动效果: