Using a low level thread and having it emit a signal is most likely the problem because the slot will likely be called in the secondary thread's context and not in the one handling the UI.
My recommendation is to try something simpler first, e.g. letting the rasterwindow program write its winId to stdout (followed by newline and maybe flush), which you then read in the main application through QProcess (see signal readyReadStandardOutput())
That way you can test the child process manually, e.g. start it in a shell window and see if it correctly outputs its window id.
i'd also recommend that you put some empty placeholder widget into the central widget and when you got the winId and have create the window container, you put the window container into a layout in that placeholder.
You obviously need to keep a pointer to that placerholder as a member of the main window instance so you can access it from the slot connected to readyReadStandardOutput()
Cheers,
_
Bookmarks