Python_tkinterのframeにスクロールバーを付ける

2603 ワード

問題の背景:インタフェースに表示する内容が多い場合は、スクロールバーScrolbarを使用する必要があります.公式ドキュメントでは、Scrolbarは以下のコントロール(canvas,entry,listbox,text)としか結合できないということです.しかし、もし私がScrolbarとframeを結合させたいなら?
解決策は、frameをcanvasの中に置く(例えばcanvas全体を満たす)ことであり、canvasはscrollbarと結合し、canvasをスクロールすることはframeをスクロールすることに等しい.
くりを一つあげる
canvas=Canvas(root,width=200,height=180,scrollregion=(0,0,520,520)) #  canvas
canvas.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