comment on utilise les thread avec pygtk ?
Bonjour,
cela fait plusieurs jours que je tente de comprendre le thread (google, faq pygtk...) mais quelque chose m'échappe alors si vous pouviez corriger mon code (ou me dire exactement quoi changer) ça serait un bon début, et avec de bonnes explications ça serait encore mieux, merci d'avance.
Actuellement la boucle for fonctionne mais l'interface freeze pendant ce temps, elle ne s'actualise qu'une fois la boucle terminé
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| #!/usr/bin/python
# -*- coding: utf-8 -*-
import time
import pygtk
#~ pygtk.require(2.0)
import gtk
import gobject
gobject.threads_init()
class Base:
def evt_delete(self, widget, evt, donnees=None):
gtk.main_quit()
return False
def refresh(self):
for i in xrange(10):
self.text.set_text(str(i))
print(i)
time.sleep(0.1)
print('ok')
return False
def __init__(self):
self.fenetre = gtk.Window(gtk.WINDOW_TOPLEVEL)
self.fenetre.set_size_request(300, 300)
self.fenetre.connect("delete_event", self.evt_delete)
vSizer = gtk.VBox()
self.text = gtk.Label('test')
vSizer.pack_start(self.text, False, False)
self.fenetre.add(vSizer)
self.text.show()
vSizer.show()
self.fenetre.show()
gobject.idle_add(self.refresh)
def app(self):
gtk.main()
app = Base()
app.app() |