Странное не последовательное поведение функции по событию при нажатии кнопки в tkinter.
При нажатии кнопки я ожидаю что сработает print(1).
Затем текст в label1 поменяется на указанный.
И затем отработает print(2)
Но почему то текст в label1 меняется последним.
Почему так происходит и как это исправить?
import tkinter as tk
from time import sleep
def run():
print(1)
label1['text'] = 'Но он меняется после sleep и print(2) и print(3)'
print(2)
sleep(5) # Для наглядности
print(3)
root = tk.Tk()
root.geometry("400x100")
label1 = tk.Label(text="После нажатия кнопки здесь должен поменяться текст сразу же")
btn = tk.Button(text="OK", command=run)
label1.grid(row=0, column=0)
btn.grid(row=1, column=0)
root.mainloop()