tkinter: usando barras de rolagem em uma tela

Estou tentando fazer uma tela rolável. No entanto, quando tento configurar as barras de rolagem para trabalhar com a tela, o tkinter parece ignorar completamente as dimensões inicialmente definidas para a minha tela. Tentei empacotá-los todos em um quadro, definindo a tela para preencher o quadro e, em seguida, definindo o tamanho do quadro, mas isso apresenta o mesmo problema, a menos que eu defina o quadro para preencher a janela também, o que não é o que eu quero . Basicamente, quero uma tela de tamanho fixo com barras de rolagem. Meu código atual é assim (em python 3.1):

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()

questionAnswers(1)

yourAnswerToTheQuestion