Whenever I use QApplication::processEvents() it allows the user to still do things in my application that I would rather them wait for the process to finish.

Is there a way to refresh the window so it doesn't look like it's frozen without having to call QApplication::processEvents() ?

If I have to use QApplication::processEvents() how can I deactivate everything until the process is done?