【Qt】信號和槽對值傳遞參數和引用傳遞參數的總結


在同一個線程中

當信號和槽都在同一個線程中時,值傳遞參數和引用傳遞參數有區別: 值傳遞會復制對象;(測試時,打印傳遞前后的地址不同) 引用傳遞不會復制對象;(測試時,打印傳遞前后的地址相同)

不在同一個線程中

當信號和槽不在同一個線程中時,分兩種情況。 1、connect時使用AutoConnection(跨線程默認是QueuedConnection):值傳遞參數和引用傳遞參數沒有區別,都會復制對象;(測試時,打印傳遞前后的地址不同) 2、connect時使用DirectConnection,測試結果和在同一線程中的結果相同

轉自:https://blog.csdn.net/u010168781/article/details/82108522

 

emit發射信號 在信號中以&引用作為參數

以引用作為參數一定要注意,在第二次發射信號的時候,引用的實體已經不存在了。

所以,如果想讓每一次發射的信號中參數的值都保存下來,不能是&引用和*指針作為參數,而應該使用值傳遞。

這樣每次發射信號的值都能夠保存下來。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM