2017-03-21 1 views
0

Ich versuche ein Programm zu machen, das auf eine bestimmte Zeit herunter zählt. In diesem Programm habe ich die Zeit angegeben, wann ich es sagen soll, klick mich an, aber ich habe Probleme herauszufinden, wie man einen Timer macht, der bis zu dieser Zeit zählt. Dies ist der Code, den ich derzeit habe:Wie man einen Timer auf eine Zeit herunterzählen lässt, die man ihm zuweist python

import time 
from tkinter import * 
from datetime import datetime 
from threading import Timer 
tk = Tk() 
canvas = Canvas(tk, width=400, height=400) 
canvas.pack() 

x = datetime.today() 
y = x.replace(day=x.day, hour=1, minute=30, second=0, microsecond=0) 
delta_t = y-x 

secs = delta_t.seconds+1 

def hello_world(): 
    label = Label(tk, text="CLICK NOW", font=('Times', 45), fg='blue') 
    label.place(relx=0.5, rely=0.5, anchor=CENTER) 

t = Timer(secs, hello_world) 
t.start() 

tk.mainloop() 

Wenn jemand irgendwelche Vorschläge hat den Countdown zu der angegebenen Zeit zu haben, wäre es sehr zu schätzen. Vielen Dank im Voraus für jede Hilfe

+0

Wie würde es in den Code integrieren und behalten das gleiche Konzept, das ich jetzt habe. Ich habe versucht, Datum Zeit zu verwenden, aber es war nicht erfolgreich – Kg123

+0

http://stackoverflow.com/questions/25189554/countdown-clock-0105 –

+0

Ich lese durch die Frage, aber es hat immer noch nicht die Antwort – Kg123

Antwort

0

Sollten Sie nicht tun?

secs = delta_t.total_seconds() + 1 

Statt

secs = delta_t.seconds + 1 
+0

Danke für der Vorschlag. Es scheint, es effizienter zu machen, aber wie mache ich es Countdown bis zu dieser Zeit – Kg123

0

Hier ist ein sehr einfacher Timer tkinter gemacht, die Sie in Ihren Code integrieren können: es einfach verwenden wie .after()

from tkinter import * 

root = Tk() 
msg = Label(root, text = str(60)) 
msg.pack() 
def timer(): 
    msg['text']=str(int(msg['text'])-1) 
    root.after(60, timer) # continue the timer 
root.after(60, timer) # 60 ms = 1 second 
root.mainloop() 

Dies ist das Grundkonzept einen Timer mit tkinter zu machen. Und es wird sehr nützlich sein.

+0

Wo würde ich die .after() – Kg123

+0

Je nachdem, was Sie tun möchten ... Sie Posted Code funktioniert nicht gut – abccd

+0

Ok. Die Sache, die ich mit dem geposteten Code erreichen wollte, war, es sagen zu lassen, klick mich zur angegebenen Zeit an. Aber ich muss es voranbringen und es sagen, 10,9,8,7 ..... bevor es sagt, klick mich. Dann bei 0, was die 60ste Sekunde der Minute ist, sagt sie die spezifizierte Zeit. – Kg123

Verwandte Themen