Lo que pasa es estas ejecutando algo que tarda mucho tiempo en el mainloop y obviamente eso bloquea todo.
Lo que tienes que hacer es ejecutar tu proceso pesado en otro thread, para que el mainloop siga corriendo.
Busca en google hay muchos ejemplos:
http://stackoverflow.com/questions/9...ithreaded-pyqt https://www.google.com.mx/search?q=p...m=122&ie=UTF-8