[pyar] chat en sockets y gtk

Pedro Jose Pezzarini jose2190 en gmail.com
Lun Mar 24 22:27:01 ART 2014


Perfecto @Darío!... felicidades!
Te aconsejo fuertemente esta lectura, si es que te interesa profundizar más
en threads con gui y gobject....

http://code.activestate.com/recipes/577129-run-asynchronous-tasks-using-coroutines/


El 24 de marzo de 2014, 18:53, Dario Coria <dservero en gmail.com> escribió:

> Resuelto.
> Perdón por el retraso en la respuesta (fin de semana largo).
>
> Ok, al final el problema era algo similar a lo que se sufre cuando se hace
> alguna operación pesada que afecte la interfaz. Con la diferencia de no
> estar tocando la interfaz (aquellos que han tenido el problema espero que
> entiendan).
>
> En resumen:
> (espero no estar tirando fruta xD)
> Como dijo Pedro la gui bloqueaba el daemon (por mas que estuviera en un
> thread y no afectara la interfaz).
> La razón "teórica" no la termino de entender pero la resolución es la
> misma que para los problemas de freeze.
> Idle_add resuelve el problema por completo.
>
> Gracias gente.
>
>
>
> El 22 de marzo de 2014, 10:33, Pedro Jose Pezzarini <jose2190 en gmail.com>escribió:
>
> @DarioCoria, te comprendo totalmente. Trabajo como desarrollador y a veces
>> es más rapido sacar algo con tecnología ya conocida, que nueva por conocer.
>> Y tampoco dan los tiempos para aprender algo sobre la marcha....
>>
>> Si es tu caso, podés utilizar glade+gtk y hacer una gui rápida con glade2
>> ... (ahora esta glade3 para gkt3) y utilizar GObject y sacar los procesos a
>> un thread separado.
>>
>> El problema de tu freeze, es que el "while 1" que tenés corriendo, toma
>> control de la gui y se te congela todo.... a mi me pasó lo mismo cuando
>> hice un desarrollo con GStreamer.
>>
>> Esta es una buena referencia, para trabajar threads con GTK:
>> http://unpythonic.blogspot.com.ar/2007/08/using-threads-in-pygtk.html
>>
>>
>> El 22 de marzo de 2014, 10:20, Dario Coria <dservero en gmail.com> escribió:
>>
>> Buenas Pedro. No sé si a alguno mas le a ocurrido esto, pero me e quedado
>>> en el tiempo.
>>> La falta de retro compatibilidad me dejaron en un python y un gtk el
>>> cual estoy acostumbrado a usar.
>>> Vivo prometiéndome hacer el salto, pero los tiempos y las obligaciones
>>> siempre me hacen ir a lo seguro.
>>>
>>> * "lo urgente no deja tiempo para lo importante" *
>>>
>>>
>>> El 22 de marzo de 2014, 9:21, Pedro Jose Pezzarini <jose2190 en gmail.com>escribió:
>>>
>>> Recuerda que PyGTK está deprecado, deberías usar GObject para
>>>> python/python3
>>>> Referencia muy útil:
>>>> https://python-gtk-3-tutorial.readthedocs.org/en/latest/index.html
>>>>
>>>>
>>>> El 21 de marzo de 2014, 18:50, Dario Coria <dservero en gmail.com>escribió:
>>>>
>>>> Buenas Adrian.
>>>>> En lugar de glib.mainloop() utilizo gtk.main(), pero supongo que para
>>>>> el caso es lo mismo.
>>>>> Lo de io channel de glib nunca e usado, pero ahora me pongo a leer, ya
>>>>> tengo por donde empezar al menos
>>>>> Para ser mucho mas claro:
>>>>>
>>>>> class Main:
>>>>>     def __init__(self):
>>>>>         ...
>>>>>         thread.start_new_thread(self.daemon, (serversock,))
>>>>>         ...
>>>>>
>>>>>     def daemon(self, serversock):
>>>>>         while 1:
>>>>>             clientsock, addr = serversock.accept()
>>>>>             ...
>>>>>
>>>>> if __name__ == "__main__":
>>>>>     ob = Main()
>>>>>     gtk.main()
>>>>>
>>>>>
>>>>> El 21 de marzo de 2014, 16:36, Adrian Pardini <pardo.bsso en gmail.com>escribió:
>>>>>
>>>>> 2014-03-21 15:39 GMT-03:00 Dario Coria <dservero en gmail.com>:
>>>>>> > El thread del daemon que se encarga de escuchar las nuevas
>>>>>> conexiones solo
>>>>>> > parece dispararse solo cuando cierro la ventana. ¿?
>>>>>> > No sé por donde arrancar, si alguien me tira una idea de porque
>>>>>> ocurre esto
>>>>>> > les estaría muy agradecido.
>>>>>> > Repito:
>>>>>> > - todo funciona bien siempre que lo use por consola
>>>>>> > - el print dentro del daemon solo ocurre en cuanto cierro la ventana
>>>>>>
>>>>>>
>>>>>> Hola Dario,
>>>>>>
>>>>>> (sin ver el código) lo mas probable es que haces
>>>>>>
>>>>>> loop = GLib.MainLoop()
>>>>>> loop.run()
>>>>>>
>>>>>> [resto del proceso?]
>>>>>>
>>>>>> y hasta que el loop no termina el resto no se ejecuta.
>>>>>> Es un requerimiento que esté en otro thread (thread a lo python?).
>>>>>> Creo que te va a ser mas util con o sin gtk en el medio usar un IO
>>>>>> channel de glib y que te avise cuando hay que atender el socket.
>>>>>>
>>>>>> saludos.
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Adrian.
>>>>>> http://ovejafm.com
>>>>>> http://elesquinazotango.com.ar
>>>>>> http://www.elarteylatecnologia.com.ar
>>>>>> _______________________________________________
>>>>>> pyar mailing list pyar en python.org.ar
>>>>>> http://listas.python.org.ar/listinfo/pyar
>>>>>>
>>>>>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>>>>>
>>>>>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre
>>>>>> de Argentina - http://www.usla.org.ar
>>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> pyar mailing list pyar en python.org.ar
>>>>> http://listas.python.org.ar/listinfo/pyar
>>>>>
>>>>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>>>>
>>>>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>>>>> Argentina - http://www.usla.org.ar
>>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> pyar mailing list pyar en python.org.ar
>>>> http://listas.python.org.ar/listinfo/pyar
>>>>
>>>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>>>
>>>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>>>> Argentina - http://www.usla.org.ar
>>>>
>>>
>>>
>>> _______________________________________________
>>> pyar mailing list pyar en python.org.ar
>>> http://listas.python.org.ar/listinfo/pyar
>>>
>>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>>
>>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>>> Argentina - http://www.usla.org.ar
>>>
>>
>>
>> _______________________________________________
>> pyar mailing list pyar en python.org.ar
>> http://listas.python.org.ar/listinfo/pyar
>>
>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>
>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>> Argentina - http://www.usla.org.ar
>>
>
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20140324/da9e49b1/attachment-0001.html>


More information about the pyar mailing list