title: TkInter Python: Destroyed widget still shows and covers new widget
body: <p>I'm making a GUI which has radio buttons to select different information to be shown. It can show a treeview or a matplotlib graph. The treeview works well, and I can switch back and forth between different trees. If I start with the graph it shows well too. The challenge is if I go from the tree view to the graph view, the graph is hidden behind the treeview, even though the treeview has been destroyed.</p>
  
  <pre><code>elif self.show.get()=="graph":
      f = makeGraph(int(self.gameType.get()))
      for child in self.display_frame.winfo_children(): child.destroy()
      canvas = FigureCanvasTkAgg(f,master = self.display_frame)
      canvas.show()
      canvas.get_tk_widget().grid(column=0,row=0,sticky=(N,S,E,W))
  </code></pre>
  
  <p>The makeGraph function simply returns a matplotlib Figure object.</p>
  
  <p>I would expect that the treeview disappears, the graph appears and the frame is resized to accommodate the (larger) graph.</p>
  
  <p>Instead, the frame is resized (and a small portion of the graph is visible at the bottom), but the treeview is resized with it, and somehow remains despite being destroyed.</p>
  
  <p>The treeview is created with the following code elsewhere:</p>
  
  <pre><code>for child in self.display_frame.winfo_children(): child.destroy()
  self.tree = ttk.Treeview(columns=self.tree_headers, show="headings")
  vsb = ttk.Scrollbar(orient="vertical", command=self.tree.yview)
  #hsb = ttk.Scrollbar(orient="horizontal", command=self.tree.xview)
  self.tree.configure(yscrollcommand=vsb.set)
  self.tree.grid(column=0, row=0, sticky=(N,S,E,W), in_=self.display_frame)
  </code></pre>