У меня есть простой код, с помощью которого я пытаюсь выполнить несколько потоков, где в каждом потоке выполняются тяжелые вычисления и, соответственно, должен быть обновлен индикатор выполнения. К сожалению, когда я нажимаю кнопку START, графический интерфейс Tkinter зависает и никогда не восстанавливается. Мой код выглядит следующим образом.
from tkinter import *
from tkinter.ttk import Progressbar
from threading import Thread
#########################################################################
def run():
for i in range(1, 5001):
P1['value'] = (i/5001)*100
P1.update_idletasks()
#########################################################################
def thread():
T1 = Thread(target=run)
T1.start()
T1.join()
#########################################################################
root = Tk()
B1 = Button(root, text='START', command=thread)
B1.grid(row=0, column=0)
P1 = Progressbar(root, orient=HORIZONTAL, length=450, mode='determinate')
P1.grid(row=0, column=1)
root.geometry('500x35')
root.mainloop()
#########################################################################