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

Sean Harmer sean.harmer at maps-technology.com
Fri Feb 19 14:11:41 CET 2010


On Friday 19 February 2010 13:07:39 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.

Ah, of course. My brain has already departed for the weekend ;-)

Thanks again,

Sean



More information about the Qt-interest-old mailing list