[Python-es] Proceso abierto tras cierre de aplicación

Carlos Zuniga carlos.zun en gmail.com
Mie Feb 26 17:33:26 CET 2014


2014-02-26 5:33 GMT-05:00 kausdiv <kausdiv en gmail.com>:
> Hola de nuevo.
>
> Veréis, tengo una pequeña aplicación usando wxPython que tras cerrarla
> siempre se crea como un proceso abierto. Si la abro varias veces, resulta
> que en la lista de procesos puede estar 3  ó 4 veces.
>
> El procedimiento que uso es este:
>
> --------------
>     def onClose( self, event ):
>         """Cierre de la aplicacion"""
>         dlg = wx.MessageDialog(self,
>           "Cerrar Realmente ?",
>              "Confirmacion de salida", wx.OK|wx.CANCEL|wx.ICON_QUESTION)
>         result = dlg.ShowModal()
>         dlg.Destroy()
>         if result == wx.ID_OK:
>             self.Destroy()
>             #self.Close(True)
> -----------------
>
> Como veis la ultima linea Close está comentada. Cuando esta activa, la
> pregunta se lanza una y otra vez hasta que pulso  cancelar en el diálogo, y
> no se cierra, (normal porque se invoca continuamente onClose).
>
> Si solo dejo Destroy, se cierra pero queda un proceso abierto. :-(

Puede ser que te quede alguna otra ventana abierta? veo que en tu
código tienes un dlg.Destroy() para un dialogo... no se destruyen
automáticamente? tal vez tengas otro que solo este oculto y haya sido
destruido.

También veo que hay este método que podrías usar:
`wx.GetApp().ExitMainLoop()`, o en último caso puedes intentar un
`sys.exit(0)` pero ambos me parecen hacks en lugar de encontrar la
causa del problema.


Saludos
-- 
A menudo unas pocas horas de "Prueba y error" podrán ahorrarte minutos
de leer manuales.


Más información sobre la lista de distribución Python-es