Как правильно указать метку Tkinter? - PullRequest
1 голос
/ 04 июня 2019

Итак, я сделал некоторый код, который имеет 2 функции: часы и таймер обратного отсчета (одновременно).

Но они также показывают друг друга одновременно, но мне нужен только один из них за раз: для этого примера ниже, в то время как таймер обратного отсчета начинается с 60 секунд и идет до 0, он должен отображаться на экрана, и когда он достигнет 0, переключитесь обратно на часы.

То, что происходит в данный момент, это то, что они оба показывают все время, мне просто нужно знать, как задать что-то вроде отсчета if> 0, показать таймер обратного отсчета ..., если countdown = 0, показать часы

Кто-нибудь может мне помочь?

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 Ответ

2 голосов
/ 04 июня 2019

Если вы используете одну функцию, вам не придется беспокоиться о том, что она будет бороться сама с собой:)

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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...