title: wxPython: Hide a widget and remove the leftover space
body: <p>I want to hide a widget in a sizer and not leave an empty space.
  I do not want to remove the widget, because I want to show it again later.</p>
  
  <p>Is there a way to hide a widget and have the shown widgets after it move over one space to fill the empty spot?</p>
  
  <p>Here is a simple example of a space being left:</p>
  
  <pre><code>import wx
  
  class MyPanel(wx.Panel):
      def __init__(self, parent):
          """Constructor"""
          wx.Panel.__init__(self, parent)
  
          sizer = wx.GridSizer(1, 3, 0, 0)
  
          a = wx.Button(self, -1, 'a')
          b = wx.Button(self, -1, 'b')
          c = wx.Button(self, -1, 'c')
  
          sizer.Add(a, 0, 0, 0)
          sizer.Add(b, 0, 0, 0)
          sizer.Add(c, 0, 0, 0)
  
          b.Hide()
  
          self.SetSizer(sizer)
  
  class MyFrame(wx.Frame):
      def __init__(self):
          """Constructor"""
          wx.Frame.__init__(self, parent=None, title="Remove Spaces")
          panel = MyPanel(self)
          sizer = wx.BoxSizer(wx.VERTICAL)
          sizer.Add(panel, 1, wx.EXPAND)
          self.SetSizer(sizer)
          self.Fit()
          self.Show()
  
  if __name__ == "__main__":
      app = wx.App(False)
      frame = MyFrame()
      app.MainLoop()
  </code></pre>