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()
运动效果: