title: Python & ttk Using labelFrames to clean up a frame
body: <p>I'm trying to build a basic GUI using ttk / Tkinter. </p>
  
  <p>I have a plotted out a basic GUI that has the right basic components, but when I try and prettify it / space it out, I'm reach my limit of getting ttk containers to play nicely... </p>
  
  <p>Examples:</p>
  
  <pre><code>from Tkinter import *
  import ttk
  
  class MakeGUI(object):
      def __init__(self,root):
          self.root = root
          self.root.title("Text Comparitor")
          ## build frame
          self.mainframe = ttk.Frame(self.root, padding="3 3 12 12")
          self.mainframe.grid(column=0, row=0, sticky=(N, W, E, S))
          self.mainframe.columnconfigure(0, weight=1)
          self.mainframe.rowconfigure(0, weight=1)
          self.mainframe.pack()
          ## text labels
          ttk.Label(self.mainframe, text="Conversion Truth Tester", font=("Helvetica", 32)).grid(column=1, row=1, sticky=E)
          self.mainframe.pack(side="bottom", fill=BOTH, expand=True)
          self.mainframe.grid()
          ttk.Label(self.mainframe, text="Source Filename:").grid(column=1, row=2, sticky=W)
          ttk.Label(self.mainframe, text="Source Text:").grid(column=1, row=3, sticky=W)
          ttk.Label(self.mainframe, text="Converted Text:").grid(column=1, row=4, sticky=W)
          ttk.Label(self.mainframe, text="Cleaned Source:").grid(column=1, row=5, sticky=W)
          ttk.Label(self.mainframe, text="Cleaned Converted:").grid(column=1, row=6, sticky=W)
          ttk.Label(self.mainframe, text="Details:").grid(column=1, row=7, sticky=W)
          ## buttons
          self.close = ttk.Button(self.mainframe, text="Close",command=self.closeFrame).grid(column=1, row=9, sticky=SE)
          self.next = ttk.Button(self.mainframe, text="Next",command=self.nextPara).grid(column=1, row=9, sticky=S)
          self.next = ttk.Button(self.mainframe, text="Prev",command=self.prevPara).grid(column=1, row=9, sticky=SW)
  
      def closeFrame(self):
          self.root.destroy()
  
      def nextPara(self):
          pass
  
      def prevPara(self):
          pass
  
  def main():
      root = Tk()
      makeGUI = MakeGUI(root)
      root.mainloop()
  
  if __name__ == '__main__':
      main()
  </code></pre>
  
  <p>Which results in: <img src="https://i.stack.imgur.com/TIUO3.png" alt="http://imgur.com/a/CwpCU#0"></p>
  
  <p>I've been trying to add a 2nd container object, a label frame to hold the text label objects, which results in the buttons moving further up (and so I assume I'm not referencing the labelframe into the grid properly:</p>
  
  <pre><code>from Tkinter import *
  import ttk
  
  class MakeGUI(object):
      def __init__(self,root):
          self.root = root
          self.root.title("Text Comparitor")
          ## build frame
          self.mainframe = ttk.Frame(self.root, padding="3 3 12 12")
          self.mainframe.grid(column=0, row=0, sticky=(N, W, E, S))
          self.mainframe.columnconfigure(0, weight=1)
          self.mainframe.rowconfigure(0, weight=1)
          self.mainframe.pack()
          ## text labels
          ttk.Label(self.mainframe, text="Conversion Truth Tester", font=("Helvetica", 32)).grid(column=1, row=1, sticky=E)
          self.lfdata = ttk.Labelframe(self.root, labelwidget=self.mainframe, text='Label')#
          self.lfdata.grid()
          ttk.Label(self.lfdata, text="Source Filename:").grid(column=1, row=2, sticky=W)
          ttk.Label(self.lfdata, text="Source Text:").grid(column=1, row=3, sticky=W)
          ttk.Label(self.lfdata, text="Converted Text:").grid(column=1, row=4, sticky=W)
          ttk.Label(self.lfdata, text="Cleaned Source:").grid(column=1, row=5, sticky=W)
          ttk.Label(self.lfdata, text="Cleaned Converted:").grid(column=1, row=6, sticky=W)
          ttk.Label(self.lfdata, text="Details:").grid(column=1, row=7, sticky=W)
  
          ## buttons
          self.close = ttk.Button(self.mainframe, text="Close",command=self.closeFrame).grid(column=1, row=9, sticky=SE)
          self.next = ttk.Button(self.mainframe, text="Next",command=self.nextPara).grid(column=1, row=9, sticky=S)
          self.next = ttk.Button(self.mainframe, text="Prev",command=self.prevPara).grid(column=1, row=9, sticky=SW)
  
      def closeFrame(self):
          self.root.destroy()
  
      def nextPara(self):
          pass
  
      def prevPara(self):
          pass
  
  def main():
      root = Tk()
      makeGUI = MakeGUI(root)
      root.mainloop()
  
  if __name__ == '__main__':
      main()
  </code></pre>
  
  <p>Which results in: <img src="https://i.stack.imgur.com/MlszX.png" alt="http://imgur.com/a/CwpCU#1"> Note the swap of positions between buttons abd labels, and the just about visible aspects of the labelframe.</p>
  
  <p>I'm trying to get the 2nd version to 'look' like a prettier version of the 1st. </p>
  
  <p>Any pointers - I've been reading around the various resources / docs, and can't find anything that fits my example (most likely - I'm doing something silly...) and nothing I've tried has worked yet - including <code>pack()</code>, <code>grid()</code> and other snippets I've found in other related examples.  </p>