我试图将一个滚动条,在画布上滚动画布内的框架,但滚动条不调整显示位置Tkinter的画布上滚动,但滚动条不调整显示画布大小
from tkinter import *
from tkinter import ttk
parent=Tk()
studentFrame=ttk.Frame(parent)
studentFrame.pack()
#settup the canvas
canvas=Canvas(studentFrame,width=700,height=300)
scroller=ttk.Scrollbar(studentFrame, orient=VERTICAL,command=canvas.yview)
canvas.grid(row=0,column=0,stick="nsew")
scroller.grid(row=0,column=1,stick="ns")
canvas.config(yscrollcommand=scroller.set)
list=ttk.Frame(canvas,width=700)
ttk.Label(list,text="S/N",width=10,relief=SUNKEN).grid(row=0,column=0,ipadx=3,ipady=3)
ttk.Label(list,text="Name",width=55,relief=SUNKEN).grid(row=0,column=1,ipadx=3,ipady=3)
ttk.Label(list,text="",width=15,relief=SUNKEN).grid(row=0,column=2,ipadx=3,ipady=3)
ttk.Label(list,text="",width=15,relief=SUNKEN).grid(row=0,column=3,ipadx=3,ipady=3)
num=0
r=0
while(r<50):
num=num+1
ttk.Label(list,text=num,width=10,relief=SUNKEN).grid(row=r,column=0,ipadx=3,ipady=3)
ttk.Label(list,text="NAME",width=55,relief=SUNKEN).grid(row=r,column=1,ipadx=3,ipady=3)
ttk.Label(list,text="EDIT",width=15,relief=SUNKEN).grid(row=r,column=2,ipadx=3,ipady=3)
ttk.Label(list,text="DELETE",width=15,relief=SUNKEN).grid(row=r,column=3,ipadx=3,ipady=3)
r=r+1
canvas.create_window((0,0),window=list,anchor=W)
canvas.config(scrollregion=canvas.bbox(ALL))
parent.mainloop()
如果您修改代码而不依赖于数据库,这将有所帮助。一个合适的[MCVE](http://www.stackoverflow.com/help/mcve)应该能够用完。数据来自数据库的事实与这个问题无关。 –