2017-01-30 6 views
0

Dies ist mein Code:Text erscheint nicht tkinter GUI

from tkinter import * 
import time 

count = 0 
while count >= 0 : 
    print(count) 
    time.sleep(1) 
    count = count + 1 


root= Tk() 


label1= Label(root, text='Gegevens', bg='lightblue') 
label2= Label(root, text='Voortgang') 
labelfiets_prestatie= Label (root, text='Fiets_Prestatie',) 
labelStappen= Label(root, text='Meter', command= count, bg='red') 


label1.pack(fill= X) 
label2.pack() 
labelfiets_prestatie.pack() 
labelStappen.pack() 


root.mainloop() 

Nun mein Problem ist, dass, wenn ich den Zählercode löschen die GUI angezeigt wird, aber ich möchte die Zahlen, die in die erzeugt werden, um zu sehen, GUI. Wo ist es schiefgelaufen?

+1

Verwenden Sie '.sleep()' nicht mit 'tkinter'. – Lafexlos

Antwort

0

Ich denke, Sie sollten after Methode verwenden.

Diese Methode registriert eine Callback-Funktion, die nach einer angegebenen Anzahl von Millisekunden aufgerufen wird. Tkinter garantiert, dass der Callback nicht früher aufgerufen wird.

class App: 
    def __init__(self, master): 
     self.master = master 
     self.poll() # start polling 

    def poll(self): 
     # do something 
     self.master.after(100, self.poll) 

Check-out kann Tkinter after method .Und wenn Sie Label aktualisieren möchten, können Sie update_idletasks verwenden können:

from tkinter import * 
from time import sleep 
root = Tk() 
var = StringVar() 
l = Label(root, textvariable = var) 
l.pack() 

count=10 
while count>=0: 
    sleep(1) 
    var.set(count) 
    count=count-1 
    root.update_idletasks() 

Hoffnung, das hilft.

+0

Es gibt auch ein Beispiel für die Verwendung eines einfachen Timers in der Dokumentation http://stackoverflow.com/documentation/tkinter/6724/delaying-a-function#t=201701301400175181844. –