Otro ejemplo del uso de threads con gtk, compare con el otro ejemplo que utiliza colas
import time import random import threading import gtk import gtk.gdk texts = ['eggs', 'spam', 'pyar', 'gtk'] class molesto(threading.Thread): '''un thread que quiere molestar el main thread''' def __init__(self, label): threading.Thread.__init__(self) self.setDaemon(True) self.label = label def run(self): '''metodo principal del thread, duerme un tiempo aleatorio y despues cambia el Label''' while True: time.sleep(random.random() * 5) texto = self.getName() + ' ' + random.choice(texts) gtk.gdk.threads_enter() # zona critica de gtk print self.getName(), 'escribiendo', texto self.label.set_text(texto) gtk.gdk.threads_leave() class ventana(gtk.Window): '''ventana con un label, ninguna locura''' def __init__(self): gtk.Window.__init__(self) self.set_default_size(640, 480) self.set_title('gtk con threads') self.label = gtk.Label('') self.add(self.label) self.label.show() if __name__ == '__main__': gtk.gdk.threads_init() ventana = ventana() ventana.show() threads = [molesto(ventana.label) for x in range(10)] for thread in threads: thread.start() gtk.main()