Tkinter Python 类 中的滚动条

ScrollBar in Classes in Tkinter Python

class CreatingWindowForEachLesson():
    def __init__(self,root,t,d1,d2,d3):
        self.t=t
        self.root=root
        self.root.focus_set()
        self.root.title(self.t)
        self.lesson=BooleanVar()
        self.l=Label(self.root,text=self.t,bg='blue') #ΤΟΜΕΑΣ ΣΠΟΥΔΑΣΤΗ 
        self.l.pack()
        self.frame1=Frame(self.root) #ΤΙΤΛΟΣ ΜΑΘΗΜΑΤΟΣ
        self.frame1.pack(anchor="center",side="top", fill="both", expand=True)
        self.frame=Frame.__init__(self)
        self.canvas =Canvas(root, borderwidth=0, background="#ffffff")
        Frame.__init__(self,self.canvas)
        Label(self,text="FirstColBot",width=30).grid(row=0,column=0)            
        Label(self,text="SecndColBot",width=20).grid(row=0,column=1)
        self.canvas = Canvas(root, borderwidth=0, background="#ffffff")
        self.vsb = Scrollbar(root, orient="vertical", command=self.canvas.yview)
        self.canvas.configure(yscrollcommand=self.vsb.set)
        self.vsb.pack(side="right", fill="y")
        self.canvas.pack(side="left", fill="both", expand=True)
        self.canvas.create_window((4,4), window=self.frame)
        self.canvas.create_window((4,4), window=self)
        self.bind("<Configure>", self.OnFrameConfigure)

我正在尝试为我的 window 根添加一些滚动条,以便打印一些课程列表。我已经阅读了 Whosebug 中的一些相关帖子并找到了一些代码行,但可能我做错了什么并且无法将它们调整为我的代码。任何想法,任何帮助?我是 Python 的新手,所以请帮忙!

列表框可能比 canvas 更好用。 Effbot 的滚动条和列表框示例 http://effbot.org/tkinterbook/scrollbar.htm