Как решить проблему отсутствия реакции окна Tkinter

Я использую Tkinker для создания прогресс-бара в моем проекте Django. Сначала я попытался использовать Celery, но у меня не получилось, поэтому я искал другие альтернативы и нашел это. Я внедрил Tkinker в свой проект и он работает, но после того как окно открывается и код выполняется, окно перестает работать. говорит, что не отвечает. Вот так:

Not response

Как я могу это сделать? И вот мой код:

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
Вернуться на верх