Du könntest im showEvent() des MainWindow über QTimer::singleShot() (mit ausreichend langem Timeout) das Abarbeiten der Aktionen anstoßen, dann hast du eine sichtbare GUI - viel bringen wird das aber nicht, da die GUI so lange blockiert, bis die Aktionen alle durch sind - wir sind wieder bei 0.
Ohne eigenem Thread für die zusätzlichen Aktionen wird es nie eine ordentliche Lösung geben. Also die Aktionen in den Thread auslagern, gegebenenfalls Kommunikation zwischen Thread und MainWindow via SIGNAL/SLOT einichten, dann sollte die Gui gleich sichtbar sein, ansprechbar, und du bekommst Stück für Stück die Ergbenisse der Initialisierung per Signal reingetriggert
