Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

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

Софья Любинская Ученик (78), открыт 6 дней назад
Вот у меня функция обратного отсчета времени. 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="Время вышло!")
4 ответа
Вертолётов 625 Мудрец (13288) 6 дней назад
Код:
 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()
Софья ЛюбинскаяУченик (78) 6 дней назад
Спасибо, вы мне отлично помогли! Все так просто оказалось. Я просто 2 месяца Питон на курсах изучала, и я еще новичок.
Похожие вопросы