Python_tkinterのframeにスクロールバーを付ける
2603 ワード
問題の背景:インタフェースに表示する内容が多い場合は、スクロールバーScrolbarを使用する必要があります.公式ドキュメントでは、Scrolbarは以下のコントロール(canvas,entry,listbox,text)としか結合できないということです.しかし、もし私がScrolbarとframeを結合させたいなら?
解決策は、frameをcanvasの中に置く(例えばcanvas全体を満たす)ことであり、canvasはscrollbarと結合し、canvasをスクロールすることはframeをスクロールすることに等しい.
くりを一つあげる
もちろん、純粋なテキストのスクロールであればscrolltextコンポーネントを選択できます.その関数はtextと同じです.このリンクを参照してください.https://www.jianshu.com/p/abea88607525
解決策は、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