利用QT消息机制可以传递一些参数,例如要传递QImage形式的图像,可以这样写:
一种形式是:
emit send(QImage);
第一种方法由于QImage默认拷贝为浅拷贝,sender只复制传递指针,无需担心内存复制的消耗。
另一种形式是
emit send (const char*);
第二种方法需要注意如果sender和reciever分属于两个线程,connect的默认连接方式QueuedConnection。如果指针为栈指针,很有可能会变成无效指针。如果指针为堆指针,要记得手动释放防止内存泄漏。而第一种方法由于QImage采用Implicit Sharing,使用较为简单安全。