Возможно, вы захотите проверить пример Мандельброта .
По сути, идея состоит в том, чтобы использовать рабочий поток для выполнения тяжелых вычислений (я бы предложил QThread, чтобы упростить связь с основным потоком с помощью сигналов / слотов), а затем, как только работа будет выполнена, с помощью вычислил данные, и основной поток нарисовал его. Вы также можете визуализировать изображение в рабочем потоке, если хотите.