title: Tkinter: grid or pack inside a grid?
body: <p>I am building a GUI for a software and want to achieve this:</p>
  
  <pre><code>######################################
  #             |      some title      #
  # menu upper  |----------------------#
  #             |                      #
  #             |         CANVAS       #
  # menu lower  |                      #
  #             |                      #
  #------------------------------------#
  #              statusbar             #
  ######################################
  </code></pre>
  
  <p><em>Menu upper</em> has some high level functionality, <em>menu lower</em> is changing in dependency of user input. Statusbar changes its contents often.</p>
  
  <hr>
  
  <p>Unfortunately, Tkinter refuses to work.</p>
  
  <p>Using the <strong>grid layout manager</strong> I were unable to create a stable design and adding content like labels and buttons to the menu on the left side:</p>
  
  <pre><code>self.root = tk.Tk()
  self.root.resizable(width=0, height=0)
  self.root.title("some application")
  
  # menu left
  self.menu_left = tk.Frame(self.root, width=150, bg="#ababab")
  self.menu_left.grid(row=0, column=0, rowspan=2, sticky="ns")
  
  self.menu_left_upper = tk.Frame(self.menu_left, width=150, height=150, bg="red")
  self.menu_left_upper.grid(row=0, column=0)
  
  # this label breaks the design   
  #self.test = tk.Label(self.menu_left_upper, text="test")
  #self.test.pack()
  
  self.menu_left_lower = tk.Frame(self.menu_left, width=150, bg="blue")
  self.menu_left_lower.grid(row=1, column=0)
  
  # right area
  self.some_title_frame = tk.Frame(self.root, bg="#dfdfdf")
  self.some_title_frame.grid(row=0, column=1, sticky="we")
  
  self.some_title = tk.Label(self.some_title_frame, text="some title", bg="#dfdfdf")
  self.some_title.pack()
  
  self.canvas_area = tk.Canvas(self.root, width=500, height=400, background="#ffffff")
  self.canvas_area.grid(row=1, column=1)
  
  self.root.mainloop()
  </code></pre>
  
  <p>This design <strong>worked without contents in the menu on the left side</strong>. Whenever I added something in <code>self.menu_left_upper</code> or <code>self.menu_left_lower</code>, like the <code>test</code> label, my design got broke: the menu frames disappeared.
  Additionally, even with <em>columnspan</em>, I had to remove the statusbar, because when it was added the menus on the left disappeared, again.</p>
  
  <hr>
  
  <p>Using <strong>pack layout manager</strong> I got this:</p>
  
  <pre><code>######################################
  #             |      some title      #
  #             |----------------------#
  # menu upper  |                      #
  #             |         CANVAS       #
  #             |                      #
  # menu lower  |                      #
  #             |----------------------#
  #             |       statusbar      #
  ######################################
  </code></pre>
  
  <p>Since I wanted the menu frame on the left to consume the full y-space I made it grow with <code>pack(side="left", expand=True, fill="both")</code>, but this setup always denies the statusbar to go for the full width.</p>
  
  <p><strong>Besides, the pure pack manager code looks "ugly"</strong>. I think a design with a grid manager is "clearer". Therefore I thought <strong>a grid or a pack layout inside a grid layout would be nice</strong>?</p>
  
  <hr>
  
  <p>Can anyone help? I am stuck in the GUI-hell :/</p>