@xpestilent

Как создать два одновременных цикла в Tkinter?

Захотел сделать себе таймер, который бы отсчитывал мне нужное время, когда я нажму на кнопочку. Всё работает хорошо с одной кнопкой, но при нажатии на другую кнопку первый останавливается. Как сделать , чтобы они работали одновременно?

import tkinter as tk
import time


sec = 0
mn = 0
sec2 = 0
mn2 = 0

win = tk.Tk()

def kb():
    global mn
    global sec 
    nt = 240
    for t in range(0,1000):
        time.sleep(1)
        if t > 0 and t % nt == 0:
            print('Done')
            return
        else:
            mn = (nt - ( t - (t // nt))) // 60 
            sec = (nt - ( t - (t // nt))) - mn*60
            print(mn, 'min', sec, 'sec')
            lbl.config(text = f'Time left: {mn} min {sec} sec')
            win.update()

def mail():
    global mn2
    global sec2
    nt = 605
    for t in range(0,1000):
        time.sleep(1)
        if t > 0 and t % nt == 0:
            print('Done')
            return
        else:
            mn2 = (nt - ( t - (t // nt))) // 60 
            sec2 = (nt - ( t - (t // nt))) - mn2*60
            print(mn, 'min', sec, 'sec')
            print(mn2, 'min', sec2, 'sec')
            lbl2.config(text = f'Time left: {mn2} min {sec2} sec')
            win.update()


win.title('Timer')
win.resizable(width = False, height = False)
win.overrideredirect(False)

b1 = tk.Button(win, font=('Arial',12,'bold'),
               text = 'START', command = kb).grid(row = 0,column = 0)

lbl = tk.Label(win, font=('Arial',12,'bold'),
               text = f'Time left: {mn} min {sec} sec ')
lbl.grid(row = 1,column = 0)

b2 = tk.Button(win, font=('Arial',12,'bold'),
               text = 'START', command = mail).grid(row = 0,column = 1)

lbl2 = tk.Label(win, font=('Arial',12,'bold'),
               text = f'Time left: {mn} min {sec} sec ')
lbl2.grid(row = 1,column = 1)


b1.pack()
lbl.pack()
b2.pack()
lbl2.pack()

win.mainloop()
  • Вопрос задан
  • 51 просмотр
Пригласить эксперта
Ответы на вопрос 1
@Kvason
Веб-разработчик
Многопоточность https://thecode.media/python-time-2/
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы