如何将倒计时更改为小时/分钟/秒

时间:2019-03-13 11:37:58

标签: python tkinter

我是Tkinter的新手,所以我只是想尽可能多地学习。我想尝试制作一个闹钟,但现在停留在时间格式上。这是当前代码:

from tkinter import *

teer = Tk()
field = Canvas(teer, bd=0, highlightthickness=0, height='190', width='400', bg='#111111')
field.pack()

def start_countdown(count):
    coin = 0.5
    teer.resizable(False,False)
    counter = Label(teer, fg = "#287aff", bg='#232323', font = ("Lato", 35, "bold"), width='15')
    counter.place(x=50, y=50)
    counter["text"] = count
    if count > 0:
       teer.after(1000, start_countdown, count -1)
    if count < 500:
       coin = 0.6
    if count < 300:
       coin = 0.7

start_countdown(500)
teer.mainloop()

现在我一直在尝试将500(秒)切成分钟/秒。或最终将其更改为小时/分钟/秒,如果我可以选择在函数中插入大于3600的整数。我只想要时间硬编码,所以我认为这不会是一个问题。

我尝试过的事情:

-人们进行了不同的警报/倒计时实验(不幸的是,那里没有多少倒数而不是倒数,而且还以小时/分钟/秒为单位。

-使用%H:%M:%S格式进行了实验

我似乎不明白。 感谢您提供有关制作倒计时的GUI程序的任何帮助或建议。

1 个答案:

答案 0 :(得分:0)

您可以使用divmod来计算剩余时间。

import tkinter as tk
root = tk.Tk()

a = tk.Label(root,text="")
a.pack()

def set_idle_timer(t):
    hours, remainder = divmod(t, 3600)
    mins, secs = divmod(remainder, 60)
    timeformat = "{:02d}:{:02d}:{:02d}".format(hours, mins, secs)
    a.config(text=timeformat)
    t -=1
    root.after(1000,lambda: set_idle_timer(t))

set_idle_timer(3605)

root.mainloop()