2016-06-05 5 views
-1
def timer(self, delay, counter): 
     while self.exitPro == False: 
      while self.isOn: 
       time.sleep(delay) 
       counter += 1 
       self.timed = counter 
       print(self.timed) 

Def Timer ist ein Thread, der ständig im Hintergrund läuft und aktualisiert (Dies funktioniert)Das Label ist Upadting nicht

def main(self): 
    timer = Thread(target=self.timer, args=(1, 0)) 
    timer.start() 


    root = Tk() 
    root.title("Jamie Stopwatch") 
    v = IntVar() 
    v.set(self.timed) 
    stopwatch = ttk.Label(root, textvariable=v) 
    stopwatch.grid(row=1, column=2) 

Jetzt muß ich das Etikett den den Wert aktualisieren der Timer. Kann mir Anoyone helfen?

+0

Sind Sie fragen, wie Sie ein Threading Problem zu lösen, oder wie eine Stoppuhr in tkinter zu schreiben. Sie benötigen sicherlich keine Threads, um eine Stoppuhr in tkinter zu erstellen. –

Antwort

0

Verwendung after:

def main(self): 
    [...] 
    self.stopwatch_value = IntVar() 
    stopwatch = ttk.Label(root, textvariable=self.stopwatch_value) 
    stopwatch.grid(row=1, column=2) 
    root.after(self.update, 500) 

def update(self): 
    self.stopwatch_value.set(self.timed) 
    root.after(self.update, 500) 
+0

root.after (self.update, 100) AttributError: 'AO' -Objekt hat kein Attribut 'update' –

+0

Ich habe dir die 'update'-Methode gegeben, die du in deine' AO'-Klasse einfügen musst. – Daniel

+0

Yeah root = Tk() ist in main (self) definiert, also heißt es, dass root nicht gefunden werden kann –

Verwandte Themen