ich wollte gerade in meiner GTK-Anwendung ein Label alle 10 Sekunden mit einem neuen Wert belegen, also habe ich mir gedacht da sind Threads genau das richtige - aber irgendwas mache ich wohl falsch :/
Ich habe mein Beispiel jetzt so runter gekürzt, dass das Label gar nicht mehr beachtet wird, lediglich ein einfaches Print soll jede Sekunde passieren, aber solange die GUI läuft funktioniert das leider nicht.
Hier mein Code:
Code: Alles auswählen
from math import *
from time import *
import pygtk
from threading import *
pygtk.require("2.0")
import gtk
import gtk.glade
class Temp (Thread):
def __init__(self):
Thread.__init__(self)
self.test=1
self.gladefile = "temptest.glade"
self.wTree = gtk.glade.XML(self.gladefile)
self.window = self.wTree.get_widget("window1")
if (self.window):
self.window.connect("destroy", self.qquit)
dic = {"on_start_clicked" : self.start_threaded}
self.wTree.signal_autoconnect(dic)
def qquit(self,widget):
print "GUI-Quit"
self.test=0;
gtk.main_quit(widget)
def start_threaded(self,widget=None):
print "thread"
self.start()
def run(self,widget=None):
while (1):
print "hi"
sleep(1)
if __name__ == "__main__":
temptest = Temp()
gtk.main()
python temperaturmessung_mit_ttf103.py
thread
hi
GUI-Quit
hi
hi
hi
hi
hi
hi
hi
Beendet
Nach der ersten Ausgabe von Hi bleibt der Thread quasi stehen, bis ich eben die gui beende, dann läuft er solange weiter bis ich ihn per kill abschieße (beendet)
--> Wo liegt mein Denk-/ bzw. Anwendungsfehler?
Vielen Dank schonmal für eure Hilfe,
Pete