Quote Originally Posted by high_flyer
No - when you send signal across threads its execution depends on what kind of a connection you made:
If its a direct connetion the slot will be executed in the thread in which the signal was emmited, that does not have to be the main thread.
The issue is not about the connection type. I have used a queued connection. The "problem" is object's owner thread. As if you know, queued signals are delivered as events underhood. If the QThread object lives in the main thread as well, the stuff gets queued but later sent directly, not posted across thread. One could easily believe that queued signals and/or posted custom events would get delivered to the qthread object's own event loop. But that is not the case and I'm glad to know it now.

Quote Originally Posted by high_flyer
If the connection you made is a qued connection then the slot will be executed in the thread in which the object that has the slot lives in, again, does not have to be the main thread.
You are missing the point. I was talking about two objects both living in main thread. Regardless of fact that one of the objects is a QThread object and the connection is queued, the slot will be executed in the main thread since that's where the QThread object lives in.

Go ahead and test it by yourself:
http://qtnode.net/pastebin/800