Estoy intentando crear un nuevo fotograma en wxPython que sea un elemento secundario del fotograma principal, de forma que cuando se cierre el fotograma principal, el fotograma secundario también se cierre.Creación de marcos secundarios de fotograma principal en wxPython
Aquí es un ejemplo simplificado del problema que estoy teniendo:
#! /usr/bin/env python
import wx
class App(wx.App):
def OnInit(self):
frame = MainFrame()
frame.Show()
self.SetTopWindow(frame)
return True
class MainFrame(wx.Frame):
title = "Main Frame"
def __init__(self):
wx.Frame.__init__(self, None, 1, self.title) #id = 5
menuFile = wx.Menu()
menuAbout = wx.Menu()
menuAbout.Append(2, "&About...", "About this program")
menuBar = wx.MenuBar()
menuBar.Append(menuAbout, "&Help")
self.SetMenuBar(menuBar)
self.CreateStatusBar()
self.Bind(wx.EVT_MENU, self.OnAbout, id=2)
def OnQuit(self, event):
self.Close()
def OnAbout(self, event):
AboutFrame().Show()
class AboutFrame(wx.Frame):
title = "About this program"
def __init__(self):
wx.Frame.__init__(self, 1, -1, self.title) #trying to set parent=1 (id of MainFrame())
if __name__ == '__main__':
app = App(False)
app.MainLoop()
Si fijo marco padre de AboutFrame en Ninguno (en la línea 48), entonces el Sobre trama se con éxito crea y se muestra pero que permanece abierto cuando el marco principal está cerrado.
¿Este es el enfoque que debería tomar para crear cuadros secundarios del cuadro principal o debería hacerlo de otra manera, por ej. usando el evento onClose del cuadro principal para cerrar cualquier cuadro secundario (de esta manera suena muy 'hackish').
Si estoy tomando el enfoque correcto, ¿por qué no está funcionando?