title: One frame at top of window, one at bottom
body: <p>I have two textboxes, I'd like the first one to be at the very top of the window and the other at the very bottom.  I'm using python 2.7, this is what I've tried:</p>
  
  <pre><code>from Tkinter import *
  import ttk
  
  def main():
      root = Tk()
      root.title("Testing")
  
      root_frame = ttk.Frame(root, padding="3 3 3 3")
      root_frame.grid(column=0, row=0, sticky=(N, W, E, S))
      root_frame.columnconfigure(0, weight=1)
      root_frame.rowconfigure(0, weight=1)
  
      frame1 = ttk.Frame(root_frame, padding="3 3 3 3")
      frame1.grid(column=0, row=0, sticky=(N, W, E))
      frame1.rowconfigure(1, weight=1)
      frame1.columnconfigure(0, weight=1)
  
      frame2 = ttk.Frame(root_frame, padding="3 3 3 3")
      frame2.grid(column=0, row=1, sticky=(W, E, S))
  
      ttk.Label(frame1, text="This is frame 1").grid(column=0, row=0, sticky=(W, E))
      ttk.Label(frame2, text="This is frame 2").grid(column=0, row=0, sticky=(W, E))
  
      root.mainloop()
  
  if __name__ == "__main__":
      main()
  </code></pre>
  
  <p>It just puts the second textbox directly under the first one.  What am I doing wrong?</p>
  
  <p>Thanks</p>
  
  <p>e: per Bryan's suggestion, I tried two more things:</p>
  
  <p>Using invisible middle row:</p>
  
  <pre><code>from Tkinter import *
  import ttk
  
  def main():
      root = Tk()
      root.title("Testing")
  
      root_frame = ttk.Frame(root, padding="3 3 3 3")
      root_frame.grid(column=0, row=0, sticky=(N, W, E, S))
      root_frame.grid_rowconfigure(1, weight=1)
  
      frame1 = ttk.Frame(root_frame, padding="3 3 3 3")
      frame1.grid(column=0, row=0, sticky=(N, W, E))
  
      frame2 = ttk.Frame(root_frame, padding="3 3 3 3")
      frame2.grid(column=0, row=2, sticky=(W, E, S))
  
      ttk.Label(frame1, text="This is frame 1").grid(column=0, row=0, sticky=(W, E))
      ttk.Label(frame2, text="This is frame 2").grid(column=0, row=0, sticky=(W, E))
  
      root.mainloop()
  
  if __name__ == "__main__":
      main()
  </code></pre>
  
  <p>Pack instead of grid:</p>
  
  <pre><code>from Tkinter import *
  import ttk
  
  def main():
      root = Tk()
      root.title("Testing")
  
      root_frame = ttk.Frame(root, padding="3 3 3 3")
      root_frame.grid(column=0, row=0, sticky=(N, W, E, S))
  
      frame1 = ttk.Frame(root_frame, padding="3 3 3 3")
      frame1.pack(side="top", fill="x")
  
      frame2 = ttk.Frame(root_frame, padding="3 3 3 3")
      frame2.pack(side="bottom", fill="x")
  
      ttk.Label(frame1, text="This is frame 1").grid(column=0, row=0, sticky=(W, E))
      ttk.Label(frame2, text="This is frame 2").grid(column=0, row=0, sticky=(W, E))
  
      root.mainloop()
  
  if __name__ == "__main__":
      main()
  </code></pre>
  
  <p>Both still behave the same as my original code.</p>