I don't see what he is doing wrong, in respect to the link you posted, except for what he tried in the second bit, which is wrong because you need to be in the "other thread" to call moveToThread().Problem is that you are doing that wrong!
The link you provided is talking about using moveToThread() wrong usage, and that you should not always use a subclass of QThread for your threads.
But there are many cases where this is the RIGHT way to go.
Even if from an OOP design point of view this is wrong, from implementation point of view this still should work (the original code with out moveToThread()).
And if it doesn't we need to understand why.
His code is almost the same as the example code QThread docs, just that he uses a QTimer and not a QTcpSocket.
Since the QTimer is allocated in run() its should have the thread affinity of the new thread, and from what the OP shows, it looks like its affinity is to the main GUI thread, which is surprising.
My guess is that it has to do with calling start() in the thread constructor.
Try removing the start() form the constructor, and call it normally from outside, see if this changes things.
Bookmarks