Python - обратный отсчет времени, как остановить? - Общение Python мододелов

Вопрос Python - обратный отсчет времени, как остановить?

Регистрация
20 Ноя 2013
Сообщения
87
Репутация
0
Спасибо
0
Монет
0
Вот у меня функция обратного отсчета времени. t принимает значения 180,120 или 60, по выбору в другой функции.Как сделать, чтобы при достижении t =0 она остановилась, а не считала в минус, и вывелось бы диалоговое окно? Может, как -то с циклом While...

def tick():

global t

if t<=180 and t>120:

t-=1

vuvodtime.config(text=f"Отсчет времени:{2} мин {t-120} сек")

vuvodtime.after(1000,tick)

return t

elif t<=120 and t>60:

t -= 1

vuvodtime.config(text=f"Отсчет времени:{1} мин {t - 60} сек")

vuvodtime.after(1000, tick)

elif t<=60:

t-=1

vuvodtime.config(text=f"Отсчет времени:{t} сек")

vuvodtime.after(1000, tick)

if t==0:

vuvodtime.config(text="Время вышло!")
 
Регистрация
1 Ноя 2013
Сообщения
76
Репутация
0
Спасибо
0
Монет
0
Код: import tkinter as tk
from tkinter import messagebox

# Глобальная переменная для отсчёта времени
t = 180 # Пример начального значения, можно менять в другой функции

def tick():
global t
if t > 0:
t -= 1
minutes, seconds = divmod(t, 60)
vuvodtime.config(text=f"Отсчёт времени: {minutes} мин {seconds} сек")
root.after(1000, tick) # Планируем следующий вызов через 1 секунду
else:
vuvodtime.config(text="Время вышло!")
messagebox.showinfo("Время вышло", "Отсчёт времени завершён!")

# Создание окна приложения
root = tk.Tk()
root.title("Обратный отсчёт")

# Лейбл для вывода времени
vuvodtime = tk.Label(root, text="", font=("Arial", 18))
vuvodtime.pack(pady=20)

# Кнопка для запуска обратного отсчёта (для тестирования)
start_button = tk.Button(root, text="Начать отсчёт", command=tick)
start_button.pack()

root.mainloop()
 
Сверху Снизу