Qt:signal 插槽通过 const 引用传递

Qt:signal slot pass by const reference

许多 qt 示例做了以下事情:

signal: passByConstRef(const QImage &)
slot: receivedByConstRef( const QImage &)

它们通过不同线程中的排队连接进行连接。 在线程 1 中:

{QImage image; 
 image = fromData(...);
 emit passByConstRef(image);
}

在线程 2 中:

receivedByConstRef(const QImage& image){
   ...
   pixmap = fromImage(image);
   ...
 }

由于信号槽通过 const Ref 传递 QImage,这意味着没有复制发生,是否有可能在构造 "pixmap" 时,"image" 在线程 1 中的生命周期结束导致线程2中构造"pixmap"失败

当您通过引用传递参数时,副本将在排队的连接中发送。事实上,当你有一个排队的连接时,参数总是被复制。所以这里不会有关于图像生命周期的问题,因为它将被复制而不是通过引用传递。