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

Andre Somers andre at familiesomers.nl
Fri Feb 19 15:23:55 CET 2010


Bradley T. Hughes wrote:
> 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.
>
>   
It could, but does it happen often enough to warrant the overhead?
Then again, you could set a direct connection explicitly if you need the 
speed increase, if that's measurable at all...

André




More information about the Qt-interest-old mailing list