pygtk y los hilos

dvilla en gmx.net dvilla en gmx.net
Mar Feb 3 21:32:34 CET 2004


Hola:

Puedes crear un hilo para los eventos gtk en plan:

import threading
 
def gtk_iteration():
    gtk.mainiteration() <-- no recuerdo si es esta o es gtk.main_iteration_do()
    gtk_thread()
         
def gtk_thread():
    t = threading.Timer(0.1, gtk_iteration)
    t.start()
     
gtk_thread()


Otra forma es que pongas la tarea de simulación como un 'idle' en el bucle de
eventos de gtk:

def simulacion():
	cosas tuyas...


gtk.idle_add(simulacion)
gtk.main()

Pero esto es concurrente monoproceso, no es multihilo. 

Espero que te sirva. 

PD: Por cierto, me encanta el material que teneis en la página del GSyC; gran
fuente de inspiración... :-)


El Tue, 03 Feb 2004 13:18:37 +0100
Pablo Barrera González <barrera en gsyc.escet.urjc.es> escribió:

> Hola a todos 
> 
> Estoy haciendo una interfaz gráfica para una simulación y tengo un par
> de problemas. Quiero tener un par de hilos en mi programa, uno que haga
> los cálculos y actualice el widget drawingarea con los resultados y otro
> que atienda a los eventos de la ventana (el gtk.main()). El problema es
> que cuando acitvo el gtk.main() el resto de los hilos se detienen y no
> se vuelven a activar hasta que no pulso un botón para volver a detenerse
> unos instantes después. Creo que gtk para los hilos de python. ¿Alguien
> sabe como están implementados estos hilos (como los pthread o con un
> planificador propio)? ¿Y algún consejo para mi aplicación? 
> 
> He estado mirando las funciones gtk.gdk.thread_init y sus amigas, pero
> no me ha quedado claro como funcionan. Seguiré probando con ellas a ver
> si saco algo en claro.
> 
> Muchas gracias a todos
> 
> Pablo 
> 
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo/python-es
> 




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