Если у вас есть функция, постоянно выполняющая бесконечный цикл в фоновом режиме, как ваш GUI будет реагировать? Он ожидает окончания цикла, и это делает интерфейс бесполезным. Как это решается в PyQT?
Использовать темы.
В Qt они используют нечто, называемое Сигналы и слоты . Я не использовал Qt с колледжа, но здесь есть много хороших ресурсов:
PyQt Wiki: Threading, _Signals_and_Slots
Смотрите также этот связанный пост SO: Потоки в приложении PyQt: Использовать потоки Qt или потоки Python? или
Python - приложение PyQt в отдельном потоке
Вы бы запускали код без 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 не так надежна.