滚动条在python tkinter中不工作

滚动条在python tkinter中不工作,python,tkinter,tkinter-canvas,Python,Tkinter,Tkinter Canvas,我正在尝试制作100个入门小部件。它应该使用垂直滚动条滚动。由于框架并没有滚动条选项,所以我使用了画布。但当我添加条目小部件时,滚动条不工作。有人能帮我找出我犯了什么错误吗 我的代码: from tkinter import * root=Tk() frame=Frame(root,width=300,height=300) frame.grid(row=0,column=0) canvas=Canvas(frame,width=300,height=300,scrollregion=(0,0,

我正在尝试制作100个入门小部件。它应该使用垂直滚动条滚动。由于框架并没有滚动条选项,所以我使用了画布。但当我添加条目小部件时,滚动条不工作。有人能帮我找出我犯了什么错误吗

我的代码:

from tkinter import *
root=Tk()
frame=Frame(root,width=300,height=300)
frame.grid(row=0,column=0)
canvas=Canvas(frame,width=300,height=300,scrollregion=(0,0,500,500))

for _ in range(100):
    Entry(canvas).pack()

vbar=Scrollbar(frame,orient=VERTICAL)
vbar.pack(side=RIGHT,fill=Y)
vbar.config(command=canvas.yview)

canvas.config(yscrollcommand=vbar.set)
canvas.pack(side=LEFT,expand=True,fill=BOTH)

root.mainloop()

画布只能滚动通过
.create\u window()
添加到画布中的子窗口小部件。通过
.pack()
添加的子窗口小部件基本上位于画布的顶部,不受其控制


请注意,
.create\u window()
.place()
几何体管理器大致相似:坐标完全由您决定,因此您必须知道输入小部件的间距,这取决于每个系统上使用的确切字体。。直接在画布上添加一个框架可能会更好,然后将所有的输入窗口小部件打包在其中-这样可以在允许滚动的同时自动调整大小。

我现在就知道了。谢谢你指点我。我错过了
create\u window()