Tôi khá mới đối với Python và muốn đặt nhãn trong Tkinter bằng chức năng đếm ngược thời gian của tôi. Ngay bây giờ tất cả những gì nó làm là đặt lable thành "10" sau khi đạt tới 10 và tôi không thực sự hiểu tại sao. Ngoài ra, ngay cả khi tôi có in hẹn giờ đến một thiết bị đầu cuối thay vì "Thời gian lên!" bit không bao giờ in.Tạo đồng hồ đếm ngược bằng Python và Tkinter?
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: Một câu trả lời trước đó đã chỉ ra rằng lý do "Time's up!"
bao giờ làm việc là vì không làm thế nào nó đã cho n
để bằng chính xáct + p
do không chính xác bằng cách sử dụng time.time
. Phiên bản dựa trên bảng điều khiển cuối cùng của bộ hẹn giờ là:
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()
Tuy nhiên, điều này không phù hợp với lý do mà Bryan Oakley đề cập trong câu trả lời và nhận xét của anh ấy.
đây là [ví dụ về đếm ngược được triển khai bằng Tkinter] (https://gist.github.com/zed/1951815) – jfs