在同一個線程中
當信號和槽都在同一個線程中時,值傳遞參數和引用傳遞參數有區別: 值傳遞會復制對象;(測試時,打印傳遞前后的地址不同) 引用傳遞不會復制對象;(測試時,打印傳遞前后的地址相同)
不在同一個線程中
當信號和槽不在同一個線程中時,分兩種情況。 1、connect時使用AutoConnection(跨線程默認是QueuedConnection):值傳遞參數和引用傳遞參數沒有區別,都會復制對象;(測試時,打印傳遞前后的地址不同) 2、connect時使用DirectConnection,測試結果和在同一線程中的結果相同
轉自:https://blog.csdn.net/u010168781/article/details/82108522
emit發射信號 在信號中以&引用作為參數
以引用作為參數一定要注意,在第二次發射信號的時候,引用的實體已經不存在了。
所以,如果想讓每一次發射的信號中參數的值都保存下來,不能是&引用和*指針作為參數,而應該使用值傳遞。
這樣每次發射信號的值都能夠保存下來。