title: How to put a progress bar (guage) in the statusbar area and lock the gui size
body: <p>I'm using wxPython to search all the files in a particular directory. As it searches the files, progress (number of files) is sent to the progress bar, just to give a little background. What I want to do is to move the progress bar down to the bottom of the frame where SetStatusText usually show a name. But, when a search is commenced, I would like the name/text to be replaced by the progress bar. Currently, when I try to change the position of the progress bar, it's only visible to right above the progress bar.</p>
  
  <p>Secondly, I want to lock the gui at it's current size, so the window can't be resized. I looked at a few examples, but every one started at some default size. I want my gui to remain at the size that I give it because the way the buttons are displayed warrants it. Here is what the gui code looks like:</p>
  
  <pre><code>class MyApp(wx.App):
      def OnInit(self):
          frame = MainWindow("ST v2.0.0", (50, 60), (458, 332))
          frame.Show()
          self.SetTopWindow(frame)
          return True
  
  
  
  class MainWindow(wx.Frame):
      def __init__(self, pos, size, title):
          wx.Frame.__init__(self, None, -1, pos, size, title)
  
  
          panel = wx.Panel(self, wx.ID_ANY)
          panel.SetBackgroundColour('LIGHT GREY')
          toolbar = self.CreateToolBar()
          toolbar.Realize()
          menuFile = wx.Menu()
          menuFile.Append(1, "&amp;About...")
          menuFile.AppendSeparator()
          menuFile.Append(2, "E&amp;xit")
          menuBar = wx.MenuBar()
          menuBar.Append(menuFile, "&amp;File")
          menu2 = wx.Menu()
          menu2.Append(wx.NewId(), "&amp;Copy", "Copy in status bar")
          menu2.AppendSeparator()
          menu2.Append(wx.NewId(), "C&amp;ut", "")
          menu2.AppendSeparator()
          menu2.Append(wx.NewId(), "Paste", "")
          menu2.AppendSeparator()
          menu2.Append(wx.NewId(), "&amp;Options...", "Display Options")
          menuBar.Append(menu2, "&amp;Edit")
  
          self.SetMenuBar(menuBar)
          self.CreateStatusBar()
          self.SetStatusText("Welcome to sQAST!")#can put connected here when logged in
          self.Bind(wx.EVT_MENU, self.OnAbout, id=1)
          self.Bind(wx.EVT_MENU, self.OnQuit, id=2)
  
          x = 100
  
          #Progress Gauge
          self.gauge = wx.Gauge(panel, -1, x ,pos=(180, 0), size=(-1, 20))
  
  
  
          #Close button
          self.button = wx.Button(panel, label="EXIT", pos=(229, 160), size=(229, 80))
          self.Bind(wx.EVT_BUTTON, self.OnQuit, self.button)
          self.Bind(wx.EVT_CLOSE, self.OnCloseWindow)
          #Dispenser button
          self.button2 = wx.Button(panel, label="Serv 1", pos=(0, 160), size=(229, 80))
          self.Bind(wx.EVT_BUTTON, self.OnStartButton, self.button2)
          #Site Server
          self.button3 = wx.Button(panel, label="SERV 2", pos=(0, 80), size=(229, 80))
          self.Bind(wx.EVT_BUTTON, self.OnSiteservButton, self.button3)
          #Local Search
          self.button4 = wx.Button(panel, label="ABORT", pos=(229, 80), size=(229, 80))
          self.Bind(wx.EVT_BUTTON, self.OnAbortButton, self.button4)
          self.button4.Disable()
          self.shouldAbort = False 
  </code></pre>
  
  <p>This worked for me:</p>
  
  <pre><code>count = 0
      count2 = 0
      for afile in filelist:
          (head, filename) = os.path.split(afile)
          if afile.endswith(".log") or afile.endswith(".txt"):
              count2 += 1
              self.progress_bar.Show()
              wx.CallAfter(self.progress_bar.SetValue, count2)# This works ....
  
              f=ftp.open(afile, 'r')
              for i, line in enumerate(f.readlines()):
                  result = regex.search(line)
                  if self.shouldAbort:
                      return self.shouldAbort
                      break
  </code></pre>