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

kausdiv kausdiv en gmail.com
Mie Feb 26 18:00:18 CET 2014


Gracias por las respuestas.

Chema, está pasado a exe con py2exe, normalmente se ejecuta desde el exe 
resultante.
Lo descubrí porque hice un instalador con inno setup, y cuando le pasé 
una nueva versión a un amigo que lo necesitaba, no dejaba actualizar 
porque decía que estaba en ejecución.

Carlos, miraré lo que dices.

Debo apuntar, que tradicionalmente el proceso de salir lo hacía desde un 
botón. Pero esta vez es el evento onClose del formulario principal, de 
manera que se cierre con la "X".
Desde un evento de botón, self.Close() va bien, pero desde el evento 
OnClose del form, se llama una y otra vez, por tanto no sale, pero con 
Destroy esto no pasa (evidentemente).

Podría hacer algo en el procedimiento para que se invoque con Close() 
pero no se me ocurre.

El 26/02/2014 13:33, Chema Cortes escribió:
> El día 26 de febrero de 2014, 13:03, Kaus Div <kausdiv en gmail.com> escribió:
>> 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,
>> (normal porque se invoca continuamente onClose).
> Tiene pinta de que hay algún hilo que no se cierra. Hasta que no
> cierren todos los hilos, la ventana no se destruye del todo.
>
> ¿Estás ejecutando este código desde algún IDE (pe: idle)? ¿Has probado
> desde la línea de comandos?
>
>
>
>



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