天天看点

qt 消息发送的注意点

利用QT消息机制可以传递一些参数,例如要传递QImage形式的图像,可以这样写:

一种形式是:

emit send(QImage);

第一种方法由于QImage默认拷贝为浅拷贝,sender只复制传递指针,无需担心内存复制的消耗。

另一种形式是

emit send (const char*);

第二种方法需要注意如果sender和reciever分属于两个线程,connect的默认连接方式QueuedConnection。如果指针为栈指针,很有可能会变成无效指针。如果指针为堆指针,要记得手动释放防止内存泄漏。而第一种方法由于QImage采用Implicit Sharing,使用较为简单安全。