[Qt-interest] Runtime Error :- connect: No such slot ...

Bradley T. Hughes bradley.hughes at nokia.com
Fri Feb 19 14:07:39 CET 2010


On 02/19/2010 01:10 PM, Sean Harmer wrote:
> On Friday 19 February 2010 12:03:29 Bradley T. Hughes wrote:
>> On 02/19/2010 12:38 PM, Sean Harmer wrote:
>>> Normally connect is smart enough to figure this out, but in your case the
>>> QThread object has affinity with the GUI thread even though you emit the
>>> signal in the context of the worker thread. So you need to be explicit
>>> here.
>>
>> Actually, emit is smart enough to handle this as well. If you emit a signal
>> for an object that is not affine to the current thread, the connection will
>> be queued (when using the default Qt::AutoConnection, of course).
>
> Ah OK that's good to know. I had thought that the queued/direct decision was
> made at the time of the connect statement. Is this deferred decision making in
> the case of Qt::AutoConnection something new or has this always been the case?

It's always been the case (since the thread affinity of sender/receiver can 
change at any time). The decision is always made at emit time; connect() 
just stores the connection type.

-- 
Bradley T. Hughes (Nokia-D-Qt/Oslo), bradley.hughes at nokia.com
Sandakervn. 116, P.O. Box 4332 Nydalen, 0402 Oslo, Norway



More information about the Qt-interest-old mailing list