Как решить проблему отсутствия реакции окна Tkinter
Я использую Tkinker для создания прогресс-бара в моем проекте Django. Сначала я попытался использовать Celery, но у меня не получилось, поэтому я искал другие альтернативы и нашел это. Я внедрил Tkinker в свой проект и он работает, но после того как окно открывается и код выполняется, окно перестает работать. говорит, что не отвечает. Вот так:
Как я могу это сделать? И вот мой код:
class myFunction():
def __init__(self, user, password, url, port, db_password, username):
self.zaman = datetime.now().strftime("%Y-%m-%d")
...
self.download_all(user, password, url, port, db_password)
...
def download_all(self, user, password, url, port, db_password):
# creating tkinter window
root = Tk()
# Progress bar widget
progress = Progressbar(root, orient=HORIZONTAL,
length=100, mode='determinate')
root.title("Sending")
root.attributes("-topmost", True)
w = root.winfo_reqwidth()
h = root.winfo_reqheight()
ws = root.winfo_screenwidth()
hs = root.winfo_screenheight()
x = (ws / 2) - (w / 2)
y = (hs / 2) - (h / 2)
root.geometry('+%d+%d' % (x, y))
try:
sys.path.append('../')
...
bar = Bar('Processing', max=len(scans))
# try download and save scans into each folder the belong to
pb_length = len(scans)
print("------pb length-----------")
print(pb_length)
pb_value = 100/pb_length
print("------pb val-----------")
print(pb_value)
for s in scans:
progress['value'] = pb_value
root.update_idletasks()
bar.next()
scanner.scan_name = s['name']
scanner.scan_id = s['id']
...
progress.pack(pady=10)
bar.finish()
else:
...
except KeyError and ConnectionError:
pass