спасибо всем за помощь, после оптимизации запросов и использования транзакций удалось в разы сократить время загрузки, теперь вместо 10 сек. загрузка идёт 3 сек.
Без второго потока действительно не обойтись, попытался использовать qApp->processEvents(); но использование gif анимации в таком случае не возможно, анимация начинает работать только после полной загрузки виджета, а если у честь что при полной загрузке виджета окно с анимацией закрывается то смысла в анимации попросту нет.
Так что пошёл разбираться с потоками
.
Ещё раз спасибо за помощь.