Когда в приложениях Tkinter необходим основной цикл
В то время как в руководствах по Tkinter подчеркивается необходимость вызова tkinter.mainloop() для отображения окон и обработки событий , некоторые пользователи наблюдают, что в интерактивных оболочках окна появляются и базовый функционал работает без этого вызова. Итак, когда же именно mainloop становится необходимым?
Функция Mainloop
Mainloop имитирует бесконечный цикл, который постоянно отслеживает события (взаимодействие с пользователем, виджеты, которые необходимо перерисовать) . Без этого цикла события не обрабатываются, что приводит к отсутствию отображения окон или обработки событий.
Исключение интерактивной оболочки
В интерактивных оболочках поток программы обрабатывается интерпретатором, позволяя обрабатывать события даже без явного вызова основного цикла. Однако запуск того же кода вне оболочки приведет к преждевременному завершению программы из-за отсутствия цикла обработки событий.
Эксперимент с терминалом GNOME
При использовании GNOME терминал:
Это связано с тем, что терминал GNOME неявно запускает базовый цикл событий, которого достаточно для этих основных операций.
Требование IDLE
Напротив, IDLE требует основного цикла вызываться явно, поскольку он не обеспечивает неявный цикл событий.
Заключение
Mainloop необходим при запуске приложения Tkinter вне интерактивной оболочки. Это гарантирует, что события обрабатываются и отображаются обновления, что позволяет приложению работать правильно.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3