Ich bin ziemlich neu in Python und möchte eine Bezeichnung in Tkinter mit meiner Countdown-Timer-Funktion setzen. Im Moment wird nur das Label auf "10" gesetzt, sobald 10 erreicht ist und ich verstehe nicht wirklich warum. Auch wenn ich den Timer auf ein Terminal drucken lasse, ist die Zeit abgelaufen! Bit druckt nie.Einen Countdown-Timer mit Python und Tkinter machen?
import time
import tkinter as tk
class App():
def __init__(self):
self.root = tk.Tk()
self.label = tk.Label(text="null")
self.label.pack()
self.Pomodoro()
self.root.mainloop()
## Define a timer.
def Pomodoro(self):
p = 10.00
t = time.time()
n = 0
while n - t < p: ## Loop while the number of seconds is less than the integer defined in "p"
n = time.time()
if n == t + p:
self.label.configure(text="Time's up!")
else:
self.label.configure(text=round(n - t))
app=App()
EDIT: Eine frühere Antwort zeigte, dass der Grund der "Time's up!"
nie, weil, wie unwahrscheinlich es war für n
gearbeitet ist genau mit der Verwendung von time.time
t + p
wegen Unschärfen zu gleichen. Die endgültige Konsole basierte Version des Timers war:
import time
## Define a static Pomodoro timer.
def Countdown():
p = 2.00
alarm = time.time() + p
while True: ## Loop infinitely
n = time.time()
if n < alarm:
print(round(alarm - n))
else:
print("Time's up!")
break
Countdown()
Dies ist jedoch nicht aus den Gründen, Bryan Oakley erwähnt in seiner Antwort und Kommentare mit Tkinter funktioniert.
hier ist ein [Codebeispiel eines Countdowns mit Tkinter implementiert] (https://gist.github.com/zed/1951815) – jfs