問題背景:當介面需要顯示的內容較多時,需要用到捲軸Scrollbar,官方文檔說Scrollbar只能與以下控制項(canvas, entry, listbox, text)相結合。但是,如果我想讓Scrollbar和frame相結合呢。
解決辦法是:把frame放在canvas裡面(比如填滿整個canvas),canvas與scrollbar結合,這樣滾動canvas就等於滾動frame了。
舉個栗子
canvas=Canvas(root,width=200,height=180,scrollregion=(0,0,520,520)) #建立canvascanvas.place(x = 75, y = 265) #放置canvas的位置frame=Frame(canvas) #把frame放在canvas裡frame.place(width=180, height=180) #frame的長寬,和canvas差不多的vbar=Scrollbar(canvas,orient=VERTICAL) #豎直捲軸vbar.place(x = 180,width=20,height=180)vbar.configure(command=canvas.yview)hbar=Scrollbar(canvas,orient=HORIZONTAL)#水平捲軸hbar.place(x =0,y=165,width=180,height=20)hbar.configure(command=canvas.xview)canvas.config(xscrollcommand=hbar.set,yscrollcommand=vbar.set) #設定 canvas.create_window((90,240), window=frame) #create_window
當然,如果是純文字的滾動,可以選擇scrolltext組件,它的函數和text一樣,可以參考一下這個連結 https://www.jianshu.com/p/abea88607525