If calling show() actually makes something visible on screen, then it doesn't seem like you are running a separate thread at all. All Qt graphics calls must be executed from within the main thread, so if show() works, it implies that you are still in the main thread.

If you look at the example in the QThread documentation, is your architecture something like that? Do you have a "worker" object that does the rendering under the control of a QThread instance, and is the worker instance actually moved into control of the thread?