天天看點

qt 消息發送的注意點

利用QT消息機制可以傳遞一些參數,例如要傳遞QImage形式的圖像,可以這樣寫:

一種形式是:

emit send(QImage);

第一種方法由于QImage預設拷貝為淺拷貝,sender隻複制傳遞指針,無需擔心記憶體複制的消耗。

另一種形式是

emit send (const char*);

第二種方法需要注意如果sender和reciever分屬于兩個線程,connect的預設連接配接方式QueuedConnection。如果指針為棧指針,很有可能會變成無效指針。如果指針為堆指針,要記得手動釋放防止記憶體洩漏。而第一種方法由于QImage采用Implicit Sharing,使用較為簡單安全。