Barra de rolagem Tkinter para quadro

Meu objetivo é adicionar uma barra de rolagem vertical a um quadro que tenha vários rótulos. A barra de rolagem deve ser ativada automaticamente assim que as etiquetas dentro do quadro excederem a altura do quadro. Depois de procurar, eu encontreiisto post útil. Com base nesse post eu entendo que para conseguir o que eu quero, (me corrija se eu estiver errado, eu sou iniciante) eu tenho que criar umFrame primeiro, crie umCanvas dentro desse quadro e fure a barra de rolagem para esse quadro também. Depois disso, crie outro quadro e coloque-o dentro da tela como um objeto de janela. Então, finalmente chego a isso:

from Tkinter import *

def data():
    for i in range(50):
       Label(frame,text=i).grid(row=i,column=0)
       Label(frame,text="my text"+str(i)).grid(row=i,column=1)
       Label(frame,text="..........").grid(row=i,column=2)

def myfunction(event):
    canvas.configure(scrollregion=canvas.bbox("all"),width=200,height=200)

root=Tk()
sizex = 800
sizey = 600
posx  = 100
posy  = 100
root.wm_geometry("%dx%d+%d+%d" % (sizex, sizey, posx, posy))

myframe=Frame(root,relief=GROOVE,width=50,height=100,bd=1)
myframe.place(x=10,y=10)

canvas=Canvas(myframe)
frame=Frame(canvas)
myscrollbar=Scrollbar(myframe,orient="vertical",command=canvas.yview)
canvas.configure(yscrollcommand=myscrollbar.set)

myscrollbar.pack(side="right",fill="y")
canvas.pack(side="left")
canvas.create_window((0,0),window=frame,anchor='nw')
frame.bind("<Configure>",myfunction)
data()
root.mainloop()
Eu estou fazendo a coisa certa? Existe uma maneira melhor / mais inteligente de alcançar a saída que esse código me deu?Por que devo usar o método de grade? (Eu tentei colocar o método, mas nenhum dos rótulos aparecem na tela.)O que é tão especial sobre o usoanchor='nw' ao criar janela na tela?

Por favor, mantenha sua resposta simples, pois eu sou um iniciante.

questionAnswers(4)

yourAnswerToTheQuestion