Python 如何使计时器显示秒数?
我读到一个倒计时计时器可以随着时间而定。sleep()。这是我的尝试。我可以将秒数打印到空闲窗口,但不能打印到Tkinter窗口。这附近有黑客吗Python 如何使计时器显示秒数?,python,tkinter,Python,Tkinter,我读到一个倒计时计时器可以随着时间而定。sleep()。这是我的尝试。我可以将秒数打印到空闲窗口,但不能打印到Tkinter窗口。这附近有黑客吗 导入时间;从tkinter进口* 秒=11 def启动(计时器): 打印(倒计时(秒,计时器)) def倒计时(秒,计时器): 当秒>=0时: 打印(秒) 如果sec>9: timer.configure(text=str(sec))#“两位数” elif秒>0: timer.configure(文本='0'+str(秒))#'1位' 其他: time
导入时间;从tkinter进口*
秒=11
def启动(计时器):
打印(倒计时(秒,计时器))
def倒计时(秒,计时器):
当秒>=0时:
打印(秒)
如果sec>9:
timer.configure(text=str(sec))#“两位数”
elif秒>0:
timer.configure(文本='0'+str(秒))#'1位'
其他:
timer.configure(文本='GAME OVER!')
秒-=1
时间。睡眠(1)
win=Tk()
win.configure(bg='black')
页眉=标签(赢,text=“游戏计时器”,fg='蓝色',bg='黑色',font=('Arial Bold',14))
header.pack()
计时器=标签(胜利,浮雕=凹陷,前景='白色',背景='黑色',字体=('Arial',14))
timer.pack(填充=两者,扩展=1)
btn=按钮(win,text='Start',command=lambda:Start(计时器))
btn.pack()
win.mainloop()
所以我们可以做一些事情来改进这一点
strftime
格式化超时,而不是使用if语句来管理格式。这可以做几天,几小时,几分钟,几秒钟等等,但现在我们只需要几秒钟和sleep()
。这是因为这两种方法将阻止主循环,因此当while循环和sleep都阻止主循环时,您将永远看不到显示的时间,只有在while循环和sleep完成后才能看到游戏结束
import tkinter as tk
而不是*
。这将有助于防止覆盖任何内容after()
import tkinter as tk
import time
def count_down(sec):
if sec > 0:
timer.configure(text=time.strftime('%S', time.gmtime(sec)))
win.after(1000, lambda: count_down(sec-1))
else:
timer.configure(text='GAME OVER!')
win = tk.Tk()
win.configure(bg='black')
sec = 11
header = tk.Label(win, text="Game Timer", fg='blue', bg='black', font=('Arial Bold', 14))
timer = tk.Label(win, relief='sunken', fg='white', bg='black', font=('Arial', 14))
btn = tk.Button(win, text='Start', command=lambda: count_down(sec))
header.pack()
timer.pack(fill='both', expand=1)
btn.pack()
win.mainloop()
我想你只是想安排你的时间。迈克-史密斯-对不起,但我不太清楚你的意思。你能给我一个提示吗?关于用tkinter创建时钟和计时器,这个网站上可能有很多问题。你做过任何研究吗?@plr108你的编辑对这个问题没有任何改进。将
Tkinter:
添加到标题是毫无意义的,因为这就是标记的用途,并且在代码已正确格式化时添加了第二层缩进。我已经把零钱退了。请在编辑过程中多加注意。信息量大!谢谢你给我的建议