Two solutions:
1. Create your QThread object and leave it alone and call start() when you want it.
2. Create a mutex, lock it with the main thread, create the worker thread and make it try to lock the same mutex on the very beginning of its run() method. When you call start, the thread will stop immediately, because the mutex is locked. When you want the thread to continue, just release the lock in the main thread.