Tkinter зависает во время обработки цикла, как я могу предотвратить это? - PullRequest
1 голос
/ 21 сентября 2011

Я делаю некоторые программы, которые включают циклы while (чтобы проиллюстрировать некоторые вычисления чисел), и когда я использую Tkinter для GUI, окна программы замирают до завершения цикла. Я хочу добавить кнопку остановки и хочу, чтобы окна не зависали. Как я могу сделать эти две вещи?

Спасибо

1 Ответ

3 голосов
/ 21 сентября 2011

Вам придется использовать отдельные потоки или процессы.Tkinter использует один поток для обработки обновлений дисплея, и этот же поток используется для обратных вызовов событий.Если ваш обработчик событий блокируется, то никакой код Tkinter не будет выполняться до его завершения.

Если у вас есть поток Tkinter (тот, который вызывает Tk.mainloop) и другой поток для остальной части вашего приложения, тогда обработчики событийзапуск в потоке Tkinter может просто передавать сообщения (возможно, с использованием Queue.Queue) в обработчик событий вашего приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...