Традиционный GUI-вый mainloop — это, по сути, обычный «while true:», в котором, среди прочего, происходит перерисовка интерфейса и обработка ввода от пользователя. Поэтому в однопоточной программе GUI будет зависать на любых блокирующих операциях (вычисления, ввод-вывод или просто time.sleep()).
Если Вы хотите освоить не только python, но и сам Qt, то стоит посмотреть на Qt-шные потоки.