因此,我编写了一些具有2个功能的代码:时钟和倒数计时器(同时)。
但是,它们也同时显示彼此,但是我一次只需要其中一个:对于下面的示例,虽然倒数计时器从60秒开始并变为0,但它必须在屏幕上,当它达到0时,切换回时钟。
目前正在发生的事情是它们都一直显示,我只需要知道如何指定类似if if countdown> 0,show countdown timer ... if countdown = 0,show clock
有人可以帮助我吗?
import tkinter as tk
from tkinter import *
import time
root = Tk()
root.attributes("-fullscreen", True)
root.config(cursor="none")
display = Label(root, font=('helvetica', 180, 'bold'), bg='black', fg='white')
display.pack(fill=BOTH, expand=1)
hora = 0
tempo = 60
def clock():
global hora
hora = time.strftime('%H:%M:%S')
display['text'] = hora
root.after(100, clock)
clock()
def countdown():
global tempo
display['text'] = ('{0:02d}:{1:02d}'.format(*divmod(tempo, 60)))
if tempo > 0:
tempo = tempo - 1
root.after(1000, countdown)
countdown()
root.mainloop()
答案 0 :(得分:2)
如果您使用单个功能,那么您就不必担心它会自身竞争:)
import tkinter as tk
from tkinter import *
import time
root = Tk()
root.attributes("-fullscreen", True)
root.config(cursor="none")
display = Label(root, font=('helvetica', 180, 'bold'), bg='black', fg='white')
display.pack(fill=BOTH, expand=1)
tempo = 60
def tick():
global tempo
if tempo > 0:
# countdown mode
display['text'] = ('{0:02d}:{1:02d}'.format(*divmod(tempo, 60)))
tempo = tempo - 1
else:
# clock mode
hora = time.strftime('%H:%M:%S')
display['text'] = hora
root.after(1000, tick)
tick()
root.mainloop()