У меня большой код, при котором нажатие кнопки должно запускать код, выполнение которого займет примерно 15 секунд. В течение этого времени я хочу отобразить ярлык с надписью «Обработка, пожалуйста, подождите» или что-то в этом роде. Однако в python весь графический интерфейс пользователя, созданный с помощью tkinter, будет зависать и размораживаться после завершения процедуры. Как мне это сделать? Я создал меньший код, чтобы мне было легче объяснять.
from tkinter import *
from threading import Thread
import os
import sys
import time
master = Tk()
master.geometry("500x500")
master.resizable(False,False)
def tryout():
sign2.config(text = "AAA")
for x in range(5):
print(x)
time.sleep(1)
sign2.config(text = "BBB")
for x in range(5):
print(x)
time.sleep(1)
sign2.config(text = "CCC")
def close_window():
master.destroy()
sys.exit()
sign1 = Label(master, text = "VNA GUI").grid(pady=10, padx=10)
sign2 = Label(master, text = "Choose option to continue")
sign2.grid(pady=10, padx=10, ipadx=50)
Button(master, text='Exit', command=close_window).grid(pady=10, padx=20)
butTest = Button(master, text='test', command=tryout)
butTest.grid(pady=10, padx=20)
master.mainloop( )
Таким образом, в этом коде я ожидаю увидеть сначала «ААА» на этикетке, затем «ВВВ» в середине счета от 0 до 4, а затем «ССС» в конце окончательного счета от 0 до 4. То, что здесь происходит, - это то, что графический интерфейс вначале зависает, счет продолжается, и я просто вижу «CCC». Как мне обойти это?