title: Problem with AuiMDI frames in wxPython
body: <p>I am creating a AuiMDIParent frame and inside that parent frame I have a AuiMDIChild Frame. Inside the child frame I have a panel which displays an image. My problem is that when I run my code (given below) I get the desired result, but when I try to close the main window that is the parent frame, nothing happens. Then when I close the child frame entire application is closed including parent frame (not just the child frame).</p>
  
  <p>I do not know why is this happening. Please help me figure out if any one has come across such problem. If you run my code you will have a better idea of the problem.</p>
  
  <p>Thanks.</p>
  
  <pre><code>import wx
  import wx.aui
  
  class ParentFrame(wx.aui.AuiMDIParentFrame):
      '''
          This is main frame
      '''
  
      def __init__(self,parent,id,title):
          '''
              Creates a Parent Frame which has child frames into it.
          '''
          wx.aui.AuiMDIParentFrame.__init__(self,parent,id,title,
                                            size=(900,700),
                                            style=wx.DEFAULT_FRAME_STYLE | wx.NO_FULL_REPAINT_ON_RESIZE)
          self.SetMinSize((500,500))
          self.CreateStatusBar()
  
  class NetworkVisualizationFrame(wx.aui.AuiMDIChildFrame):
      '''
          This is a child frame
      '''
  
      def __init__(self,parent=None,id=-1,title="Network Visualization",image="Default.png"):
          '''
              Creates a child frame inside parent frame.
          '''
          wx.aui.AuiMDIChildFrame.__init__(self,parent,id,title)
          (frameWidth,frameHeight) = self.GetSizeTuple()
  
          #=========================================================
          # Create an image panel
          #=========================================================
          imagePanelHeight = int(frameHeight)
          imagePanelWidth = int(0.7 * frameWidth)
          self.imagePanel = wx.Panel(self,id=-1,name="Image Panel",
                                     style=wx.BORDER_THEME,
                                     size=(imagePanelWidth,imagePanelHeight))
                      self.loadImage(image)
  
          self.Bind(wx.EVT_SIZE, self.onResize)
          self.Bind(wx.EVT_PAINT, self.onPaint)
  
      def loadImage(self,image):
          #==================================================
          # Find the aspect ratio of the image
          #==================================================
          self.png = wx.Image(image, wx.BITMAP_TYPE_PNG)
          imageHeight = self.png.GetHeight()
          imageWidth = self.png.GetWidth()
          self.aspectRatio = imageWidth/imageHeight
          self.bitmap = wx.BitmapFromImage(self.png)
  
      def onResize(self,event):
          (frameWidth,frameHeight) = self.GetSizeTuple()
          imagePanelWidth = int(0.7 * frameWidth)
          imagePanelHeight = int(frameHeight) 
          self.imagePanel.SetSize((imagePanelWidth,imagePanelHeight))
          (w, h) = self.getBestSize()
          self.imagePanel.SetSize((w,h)) 
          self.scaledPNG = self.png.Scale(w, h)
          self.bitmap = wx.BitmapFromImage(self.scaledPNG)
          self.Refresh()
  
      def onPaint(self,event):
          dc = wx.PaintDC(self.imagePanel)
          dc.DrawBitmap(self.bitmap, 0, 0, useMask=False)
  
      def getBestSize(self):
          (w,h) = self.imagePanel.GetSizeTuple()
          # Keep the height same and change width of the image according to aspect ratio
          newWidth = int (self.aspectRatio * h)
          newSize = (newWidth,h)
          return newSize
  
  app = wx.PySimpleApp()
  parentFrame = ParentFrame(None,-1,"Main Frame")
  NetworkVisualizationFrame(parentFrame,-1,"Network Visualization","Artifacts_vs_Elaborations_36855.png")
  parentFrame.Show()
  app.MainLoop()
  </code></pre>