Apologies, I misread your code and thought that maybe mdiArea->addSubwindow was being left hanging.

try

QMdiSubWindow *subWindow = mdiArea->addSubWindow(&spreadsheet);