2017-01-30 59 views
0

這是我的代碼:文本不會出現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() 

現在我的問題是,每當我刪除出現在GUI中的計數代碼,但我想這是產生在被觀察到的數字GUI。它出了什麼問題?

+1

不要在'tkinter'中使用'.sleep()'。 – Lafexlos

回答

0

我認爲你應該使用after方法。

該方法註冊一個回調函數,該回調函數將在 給定毫秒數後調用。 Tkinter保證回調 不會比此前調用。

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

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

您可以檢查出Tkinter after method。而如果你想更新標籤,你可以使用update_idletasks

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() 

希望這有助於。

+0

還有一個如何使用它在文檔化中創建簡單計時器的示例http://stackoverflow.com/documentation/tkinter/6724/delaying-a-function#t=201701301400175181844。 –