Как получить отзывчивый графический интерфейс, если ваш код запускает цикл infinte?PyQT - PullRequest
5 голосов
/ 01 февраля 2010

Если у вас есть функция, постоянно выполняющая бесконечный цикл в фоновом режиме, как ваш GUI будет реагировать? Он ожидает окончания цикла, и это делает интерфейс бесполезным. Как это решается в PyQT?

Ответы [ 2 ]

4 голосов
/ 01 февраля 2010

Использовать темы.

В Qt они используют нечто, называемое Сигналы и слоты . Я не использовал Qt с колледжа, но здесь есть много хороших ресурсов:

PyQt Wiki: Threading, _Signals_and_Slots

Смотрите также этот связанный пост SO: Потоки в приложении PyQt: Использовать потоки Qt или потоки Python? или

Python - приложение PyQt в отдельном потоке

0 голосов
/ 01 февраля 2010

Вы бы запускали код без GUI в QThread. Тогда ваш графический интерфейс останется отзывчивым.

Учебное пособие по многопоточности в QT смотрите по этой ссылке:

http://doc.trolltech.com/4.4/threads.html

Документация для класса потоков Qt (QThread) доступна по этой ссылке:

http://doc.trolltech.com/4.4/qthread.html#details

Они оба являются ссылками на документацию C ++, но все же имеют ценность даже при использовании PyQt, особенно когда документация PyQt не так надежна.

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