Calling processEvents() once before a busy loop won't do the trick. You have to call it every now and then during the busy loop. You must let the application to process its events meanwhile you do the calculation. Otherwise the application won't be able to update any widget.