If you have moveToThread() in the constructor then the slot will be called in the right context. But you shouldn't move the QThread object it its own thread. What's the point of having this thread anyway? I don't know how much code you cut out from the snippet you pasted here but it seems the thread is sitting there doing nothing.