Мой графический интерфейс tkinter зависает при увеличении значения индикатора выполнения с помощью многопоточных функций - PullRequest
0 голосов
/ 11 июля 2019

У меня есть простой код, с помощью которого я пытаюсь выполнить несколько потоков, где в каждом потоке выполняются тяжелые вычисления и, соответственно, должен быть обновлен индикатор выполнения. К сожалению, когда я нажимаю кнопку 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()

#########################################################################
...