title: tkinter: using scrollbars on a canvas
body: <p>I'm trying to make a canvas scrollable. However, once I try to set up scrollbars to work with the canvas, tkinter seems to completely ignore the dimensions I initially set for my canvas. I've tried packing them all in a frame, setting the canvas to fill the frame and then setting the frame size, but that presents the same problem unless I set the frame to fill the window as well, which isn't what I want. Basically, I want a fixed-size canvas with scrollbars on it. My current code looks like this (in python 3.1):</p>
  
  <pre><code>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()
  </code></pre>