title: Creating a scrolling panel in wxPython
body: <p>Level: Beginner</p>
  
  <p>I recently started to programme a GUI application with wxPython. I am facing a problem in creating a scrollable panel. I already have a <code>wx.Frame</code> which is working fine. There are 2 panels in my gui. (Please neglect the panel-3 for this moment) I would like to make my panel-2 scrollable so that it can contain more elements. The basic structure my GUI is as below:</p>
  
  <p><img src="https://i.stack.imgur.com/mT187.jpg" alt="GUI demo"></p>
  
  <p>I have tried using the <code>wx.lib.scrolledpanel.ScrolledPanel()</code> in my code but the scroll bar is not appearing for some reason. My code is as below:</p>
  
  <pre><code>panel2 = wx.lib.scrolledpanel.ScrolledPanel(self,-1, size=(600,400), pos=(0,28), style=wx.SIMPLE_BORDER)
  panel2.SetupScrolling()
  button1 = wx.Button(panel2,label="Button 1",pos=(0,50),size=(50,50))
  button2 = wx.Button(panel2,label="Button 2",pos=(0,100), size=(50,50))
  button3 = wx.Button(panel2,label="Button 3",pos=(0,150),size=(50,50))
  button4 = wx.Button(panel2,label="Button 4",pos=(0,200), size=(50,50))
  button5 = wx.Button(panel2,label="Button 5",pos=(0,250),size=(50,50))
  button6 = wx.Button(panel2,label="Button 6",pos=(0,300), size=(50,50))
  button7 = wx.Button(panel2,label="Button 7",pos=(0,350), size=(50,50))
  button8 = wx.Button(panel2,label="Button 8",pos=(0,400), size=(50,50))
  </code></pre>
  
  <p>Currently when I execute my code I get panel-2 with 7 buttons only instead of 8. I was hoping that the 8th button would create the scroll bar as it will not fit in the panel-2's dimensions.
  Can anyone suggest what could be a possible solution to my problem or am I missing something?</p>
  
  <p>Thank you for your time &amp;
  PS: There is a similar question <a href="https://stackoverflow.com/questions/11110842/make-a-scrolling-panel-in-python-wx-python">here</a> but is not answered.</p>
  
  <p>The complete code can be found here below:</p>
  
  <pre><code>import wx
  import wx.lib.scrolledpanel
  
      class GUI(wx.Frame):
  
          def __init__(self,parent,id,title):
              #First retrieve the screen size of the device
              screenSize = wx.DisplaySize()
              screenWidth = screenSize[0]
              screenHeight = screenSize[1]
  
              #Create a frame
              wx.Frame.__init__(self,parent,id,title,size=screenSize, style=wx.DEFAULT_FRAME_STYLE ^ wx.RESIZE_BORDER)
  
              panel1 = wx.Panel(self,size=(screenWidth,28), pos=(0,0), style=wx.SIMPLE_BORDER)
              panel1.SetBackgroundColour('#FDDF99')
              panel2 = wx.lib.scrolledpanel.ScrolledPanel(self,-1, size=(screenWidth,400), pos=(0,28), style=wx.SIMPLE_BORDER)
              panel2.SetupScrolling()
              panel2.SetBackgroundColour('#FFFFFF')
              button1 = wx.Button(panel2,label="Button 1",pos=(0,50),size=(50,50))
              button2 = wx.Button(panel2,label="Button 2",pos=(0,100), size=(50,50))
              button3 = wx.Button(panel2,label="Button 3",pos=(0,150),size=(50,50))
              button4 = wx.Button(panel2,label="Button 4",pos=(0,200), size=(50,50))
              button5 = wx.Button(panel2,label="Button 5",pos=(0,250),size=(50,50))
              button6 = wx.Button(panel2,label="Button 6",pos=(0,300), size=(50,50))
              button7 = wx.Button(panel2,label="Button 7",pos=(0,350), size=(50,50))
              button8 = wx.Button(panel2,label="Button 8",pos=(0,400), size=(50,50))
  
  
      if __name__=='__main__':
          app = wx.App()
          frame = GUI(parent=None, id=-1, title="Test")
          frame.Show()
          app.MainLoop()
  </code></pre>