Вы можете использовать модуль многопоточности threading для запуска чего-либо в другом потоке. Если вы запустите его в другом потоке, окно Tkinter не будет ожидать завершения всей функции до sh, так как эта функция выполняется в другом потоке, чем окно Tkinter.
- Импорт модуля Threading
import threading
Создайте функцию, для которой вы хотите запустить новый поток
Создайте новый поток и передайте созданную вами функцию
thread = threading.Thread(target=function, args=arguments)
Где target
- функция, которую вы хотите вызвать в этом новом шаге, а args
- аргументы, которые необходимо передать в вашу функцию (вы можете опустить args
, если нет аргументов для передачи в )
Запустить новый поток
thread.start()
Редактирование чего-либо в объекте Tk()
должно выполняться в том же потоке, в котором он был создан (в основном вы не можете ничего редактировать в одно и то же окно, в 2-х разных темах).