Qt信号和槽对值传递参数和引用传递参数的总结

Posted liushui-sky

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt信号和槽对值传递参数和引用传递参数的总结相关的知识,希望对你有一定的参考价值。

在同一个线程中

当信号和槽都在同一个线程中时,值传递参数和引用传递参数有区别: 值传递会复制对象;(测试时,打印传递前后的地址不同) 引用传递不会复制对象;(测试时,打印传递前后的地址相同)

不在同一个线程中

当信号和槽不在同一个线程中时,分两种情况。 1、connect时使用AutoConnection(跨线程默认是QueuedConnection):值传递参数和引用传递参数没有区别,都会复制对象;(测试时,打印传递前后的地址不同) 2、connect时使用DirectConnection,测试结果和在同一线程中的结果相同

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

 

emit发射信号 在信号中以&引用作为参数

以引用作为参数一定要注意,在第二次发射信号的时候,引用的实体已经不存在了。

所以,如果想让每一次发射的信号中参数的值都保存下来,不能是&引用和*指针作为参数,而应该使用值传递。

这样每次发射信号的值都能够保存下来。

以上是关于Qt信号和槽对值传递参数和引用传递参数的总结的主要内容,如果未能解决你的问题,请参考以下文章

Qt中信号槽形参值传递,引用传递,指针传递的实例及总结

Qt中信号槽形参值传递,引用传递,指针传递的实例及总结

QT编程中信号与槽遇到的参数传递问题,如下

Qt 槽函数怎么传递参数

Qt信号槽如何附带自定义参数

在 qt C++ 信号和槽中使用已删除函数错误