如何指定Tkinter正确标签?

时间:2019-06-04 18:32:27

标签: python tkinter

因此,我编写了一些具有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()

1 个答案:

答案 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()