2015-12-14 63 views
-1

我想在Tkinter中建立一些東西,我想在其中添加一個時鐘來告訴用戶剩下多少時間。我怎樣才能實現這個?如何在tkinter窗口中添加時鐘小部件?

我試圖找到它,但他們給我after()函數。我怎麼能確定它會在一秒之後被調用?

+0

的Tkinter的時間是足夠好,用戶不會注意到有什麼差別。如果您在很長時間內保持精確的時間跟蹤,則可以偶爾將倒計時同步到系統時間。你能提供關於什麼/多少/等的更多細節。你在計數? – TigerhawkT3

+0

順便說一句,我把這個標記爲重複的,因爲答案有計時器的代碼,也解釋了爲什麼你不能確定。 '請記住,以後不能保證函數能準確按時運行。它只安排工作在給定時間後運行。它的應用程序很忙,因爲Tkinter是單線程的,所以在被調用之前可能會有延遲。延遲通常以微秒爲單位。' – Lafexlos

+1

我喜歡OP如何提到他看到'after()'但不確定精度,然後答案只是如何使用'after()'的例子沒有關於其準確性的信息。 – TigerhawkT3

回答

0

您可以使用時間獲得time leftlabel來顯示它。

'%.1f' % (newtime - TIME)用於在.之後總是有一位數字。
這是一個簡單的例子:

from Tkinter import* 
import time 

the_time='' 


TIME = newtime = time.time() 

class Window(Frame): 
    def __init__(self,master): 
     Frame.__init__(self, master) 
     self.grid() 
     self.create_widgets() 


    def create_widgets(self): 
     #Create a label that displays time: 
     self.display_time=Label(self, text=the_time) 
     self.display_time.grid(row=0, column=1) 

     def change_value_the_time(): 
      global the_time 
      newtime = time.time() 
      if newtime != the_time: 
       the_time= '%.1f' % (newtime - TIME) 
       self.display_time.config(text=the_time, font="40") 
      self.display_time.after(20, change_value_the_time) 

     change_value_the_time() 

root=Tk() 
root.title("Test") 
root.geometry("200x200") 
app=Window(root) 
root.mainloop() 
相關問題