импортировать tkinter как tk время импорта окно=tk.Tk() window.title("таймер") window.geometry("640x400+100+100") настройка = tk.Frame(окно) счетчик = tk.Frame(окно) Setting.place(relx=0, полагаться=0, relwidth=1, relheight=1) counter.place(relx=0, полагаться=0, relwidth=1, relheight=1) настройка.tkraise() #показать сет set_hmc = 0 защита setcount_up(): глобальный set_hmc set_hmc += 1 set.config(текст=set_hmc) защита setcount_down(): глобальный set_hmc если set_hmc != 0: set_hmc -= 1 set.config(текст=set_hmc) set_exp = tk.Label(setting, text="set", ширина=10, высота=5) set = tk.Label(настройка, текст = set_hmc, ширина = 10, высота = 5) set_up = tk.Button(setting, text="+", команда=setcount_up) set_down = tk.Button(setting, text="-", команда=setcount_down) set_exp.place(x=320,y=50) set.place(x=320,y=100) set_up.place(x=50,y=100) set_down.place(x=590,y=100) #показать время тренировки exz_sec = 0 защита exzcount_up(): глобальный exz_sec глобальный exz_hmc exz_sec += 1 exz_hmc = f'{exz_sec//60:02d}:{exz_sec%60:02d}' exz.config(текст=exz_hmc) защита exzcount_down(): глобальный exz_sec глобальный exz_hmc если exz_sec != 0: exz_sec -= 1 exz_hmc = f'{exz_sec//60:02d}:{exz_sec%60:02d}' exz.config(текст=exz_hmc) exz_hmc = f'{exz_sec//60}:{exz_sec%60}' exz_exp = tk.Label(настройка, text="упражнение", ширина=10, высота=5) exz = tk.Label(настройка, текст=exz_hmc, ширина=10, высота=5) exz_up = tk.Button(настройка, text="+", команда=exzcount_up) exz_down = tk.Button(настройка, text="-", команда=exzcount_down) exz_exp.place(x=320,y=150) exz.place(x=320,y=200) exz_up.place(x=50,y=200) exz_down.place(x=590,y=200) #показать время отдыха отдых_сек = 0 rest_hmc = f'{rest_sec//60}:{rest_sec%60}' защита restcount_up(): глобальный rest_sec глобальный rest_hmc отдых_сек += 1 rest_hmc = f'{rest_sec//60:02d}:{rest_sec%60:02d}' rest.config(текст=rest_hmc) защита restcount_down(): глобальный rest_sec глобальный rest_hmc если rest_sec != 0: отдых_сек -= 1 rest_hmc = f'{rest_sec//60:02d}:{rest_sec%60:02d}' rest.config(текст=rest_hmc) rest_exp = tk.Label(настройка, text="rest", ширина=10, высота=5) rest = tk.Label(настройка, текст = rest_hmc, ширина = 10, высота = 5) rest_up = tk.Button(setting, text="+", команда=restcount_up) rest_down = tk.Button(setting, text="-", команда=restcount_down) rest_exp.place(x=320,y=250) rest.place(x=320,y=300) rest_up.place(x=50,y=300) rest_down.place(x=590,y=300) #кнопка выполнить защита выполнения(): counter.tkraise() подсчет() exct = tk.Button(настройка, text="выполнить", команда=выполнить) exct.place(x=320,y=350) ############################################подсчет времени по прилавок########################################## set_count = set_hmc ток = 5 cur_set = tk.Label(counter, text=set_count, ширина=10, высота=5) cur_what = tk.Label(counter, text='ready', width=10, height=5) cur_time = tk.Label(counter, text=f'{cur//60}:{cur%60}', ширина=10, высота=5) cur_set.place(x=320,y=50) cur_what.place(x=320,y=100) cur_time.place(x=320,y=200) определение подсчета(): глобальный set_count глобальный дворняга пока set_count != 0: cur_set.config(текст=set_count) if set_count == set_hmc: #дайте пользователю время подготовиться к первому набору обратный отсчет() Cur = exz_sec cur_what.config(text='упражнение') обратный отсчет() Cur = rest_sec cur_what.config(text='rest') обратный отсчет() set_count -= 1 если set_count == 0: настройка.tkraise() обратный отсчет защиты(): глобальный дворняга если Cur > 0: cur_time.config(text=f'{cur//60:02d}:{cur%60:02d}') кур -= 1 window.after(1000, обратный отсчет) окно.mainloop()

[img]https:/ /i.stack.imgur.com/lhUql.png[/img]
Я делаю интервальный таймер, используя tkinter и python. Но когда я запускаю код, временной цикл с использованием метода after не работает. Время не идет, а число остается 00:05. Кроме того, количество наборов становится равным 0, независимо от того, что я написал.
Когда я изменил 'set.config(text=set_hmc)' и 'set = tk.Label(setting, text=set_hmc, width=10, height=5)' на 'set_var.set(exz_hmc)' и ' set = tk.Label(setting, textvariable=set_var, width=10, height=5)' и то же самое для exz и rest, номер набора во втором кадре отображается нормально, но время и здесь не прошло.