Преобразование вашей рабочей программы в функции, которые вы можете зарегистрировать как обратные вызовы в пользовательском интерфейсе tkinter (скажем, кнопки или другие виджеты), то есть сделать ее управляемой событиями, а затем, для фоновой обработки, зарегистрировать некоторые функции с помощью after
метод виджета. root.mainloop()
никогда не вернется (только при закрытии пользовательского интерфейса), используйте его как последнюю инструкцию.
Так что вы не можете просто написать свою логику в нисходящей структуре и надеяться, что она будет хорошо работать с пользовательским интерфейсом. Основной цикл будет постоянно зацикливаться и будет вызывать определенные функции в вашем коде, в зависимости от полученных событий от пользователя или для обратных вызовов, которые вы зарегистрировали для запуска через некоторое время с after
.
См. здесь для after
части
Посмотрите здесь для структурирования программ tkinter. В нем должно быть достаточно информации и ссылок, чтобы вы могли учиться и научиться делать это правильно.