[pyar] multiprocessing y pygtk
Hernan Grecco
hernan.grecco en gmail.com
Jue Mar 28 11:07:13 ART 2013
Hola Esteban,
2013/3/28 Esteban Alejandro Chauque <achauque en gmail.com>:
> Tal vez si planteo el problema de otra forma sea mas fácil. El
> programa que estoy armando se debe comunicar con dos dispositivos usb
> al mismo tiempo de donde toma datos en simultaneo y debo refrescarlos
> en la interfaz gráfica, por lo que dejo un while abierto (en ciclo
> infinito) tomando lecturas desde los puerto usb (que funcionan bien) .
> El problema se da cuando empiezo a hacer otras llamadas desde la
> interfaz grafica (recursivamente) y se cierra la aplicacion. Si
> lograra con dos subprocesos devolver a la interfaz a través de
> subprocesos podria evitar desde un thread tener que actualizar la UI.
> Voy a leer nuevamente lo que me pasaste
Tenes que usar PyGTK? Porque usando Qt (y PyQt o PySide) es muy facil
hacer applicationes multithreaded. Basicamente tenes el mecanismo de
Signals and Slots, que te permite conectar dos partes de una
aplicaciones de forma tal que cuando "emitis una señal" se ejecuta un
"slot" asociado a un objeto. Lo verdaderamente utils es que por
default, el slot se ejecuta en el thread del objeto (por ejemplo el
main thread que contiene los widgets).
saludos,
Hernan
>
>
> Saludos
>
> El día 28 de marzo de 2013 10:36, Natalia Bidart
> <nataliabidart en gmail.com> escribió:
>> 2013/3/28 Esteban Alejandro Chauque <achauque en gmail.com>:
>>> Muchas gracias natalia por la respuesta. Justamente estoy intentando
>>> deshacerme de los threads porque creo que por ahí viene mi problema.
>>> Las funciones de llamadas periódicas las he usado antes y para consulta de
>>> menor frecuencia me sirven de diez.
>>> Pero la idea ahora es poder tirar un suboroceso utilizando processing (no
>>> threads para no compartir el espacio en memoria. Logro levantar el
>>> subproceso y pasarle datos con queue, pero no se como hacer que el
>>> subproceso devuelva algo al loop de gtk.main()
>>
>> Si vas a levantar otro proceso desde gtk, deberías usar la misma lib
>> de GLib para spawnear procesos:
>>
>> https://developer.gnome.org/glib/2.30/glib-Spawning-Processes.html#g-spawn-async
>>
>> Aún así, no entiendo qué proceso levantarías que te solucione tu problema :-).
>>
>> N.
>> _______________________________________________
>> 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
More information about the pyar
mailing list