Вот у меня функция обратного отсчета времени. 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} сек"
Код: 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()