[Interest] Signal with QString argument from another thread.

Thiago Macieira thiago.macieira at intel.com
Tue Oct 6 22:24:08 CEST 2015


On Tuesday 06 October 2015 19:43:03 Igor Mironchik wrote:
> Hi guys,
> 
> Is it safe to use QString argument in queued slot when signal emitted
> from another thread?
> 
> void mySignal( QString arg );
> void mySlot( QString arg );

Yes. All arguments passed by value or by const-ref are copied into the event 
that gets posted to the other thread.

And QString, like other Qt value classes, should be treated like an int. 
You're not asking that question about an int argument, so you shouldn't have 
to ask about a QString argument.

> The same question if argument will be const QString & and argument to
> signal passed as temporary object, like this:
> 
> void mySignal( const QString & arg );
> 
> emit mySignal( QLatin1String( "Hello!!!" ) ); // emitted from another
> thread, different from GUI thread...
> 
> void mySlot( const QString & arg ); // Live in GUI thread...

As explained above.

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center




More information about the Interest mailing list