18
我正在嘗試使畫布可滾動。但是,一旦我嘗試設置滾動條來處理畫布,tkinter似乎完全忽略了我最初爲畫布設置的尺寸。我已經嘗試將它們全部放在一個框架中,設置畫布以填充框架,然後設置框架大小,但是這會出現相同的問題,除非我將框架設置爲填充窗口,這不是我想要的。基本上,我想要一個帶有滾動條的固定大小的畫布。我當前的代碼看起來像這樣(在Python 3.1):python和tkinter:在畫布上使用滾動條
from tkinter import *
root=Tk()
frame=Frame(root,width=300,height=300)
frame.grid(row=0,column=0)
canvas=Canvas(frame,bg='#FFFFFF',width=300,height=300,scrollregion=(0,0,500,500))
hbar=Scrollbar(canvas,orient=HORIZONTAL)
hbar.pack(side=BOTTOM,fill=X)
hbar.config(command=canvas.xview)
vbar=Scrollbar(canvas,orient=VERTICAL)
vbar.pack(side=RIGHT,fill=Y)
vbar.config(command=canvas.yview)
canvas.config(width=300,height=300)
canvas.config(xscrollcommand=hbar.set, yscrollcommand=vbar.set)
canvas.pack(side=LEFT,expand=True,fill=BOTH)
root.mainloop()
爲什麼我們最後必須將畫布打包?我注意到,當我在任何滾動條之前打開畫布時,它最終會重疊水平滾動條 - 我剛開始使用tkinter,但我認爲這個包不會重疊。 謝謝 – Lanfear
而核心是'scrollregion =(0,0,500,500)',沒有它,整個都無法工作! – Turtle