проблема Python GTK - PullRequest
       6

проблема Python GTK

1 голос
/ 03 февраля 2011

Я создал окно GTK в init а потом я обрабатываю новую функцию и я добавляю значения из новой функции в окно GTK пока вторая функция не завершится, окно перестает отвечать и может стать отзывчивым, когда вторая функция завершается.

Может кто-нибудь сказать мне, нужно ли мне делать то же самое?

1 Ответ

2 голосов
/ 03 февраля 2011

Windows перестает отвечать на запросы в gtk (и в системах управления окнами в целом), когда вы вызываете функцию в цикле событий, который является потоком, отвечающим за поддержание реагирования окна (этот поток перерисовывает окно, обрабатывает щелчки мыши и т. Д. ). Если функция, которую вы вызываете, немедленно возвращается, вы не заметите неотзывчивость, но если функция проделает большую работу, у вас возникнет ситуация, описанная в вашем вопросе.

Вы должны выполнить вторую функцию в отдельном потоке (рабочем потоке). Если вам нужно обновить окно после возврата этой функции, убедитесь, что вы делаете это обновление в цикле событий (например, вызывая glib.idle_add), а не из рабочего потока! В противном случае могут произойти странные сбои.

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