Qt:通过常量引用的信号槽
Qt:signal slot pass by const reference
许多qt示例执行了以下操作:
signal: passByConstRef(const QImage &)
slot: receivedByConstRef( const QImage &)
它们通过不同线程中的排队连接进行连接。线程1:
{QImage image;
image = fromData(...);
emit passByConstRef(image);
}
线程2:
receivedByConstRef(const QImage& image){
...
pixmap = fromImage(image);
...
}
由于信号槽通过常量Ref的QImage,这意味着没有复制发生,那么当构建"像素图"时,线程1中"图像"的寿命是否可能结束,并导致线程2中构建"像素地图"的失败。
通过引用传递参数时,将在排队连接中发送副本。事实上,当您有一个排队的连接时,参数总是被复制的。因此,在这里,图像的寿命不会有任何问题,因为它将被复制而不是通过引用传递。
相关文章:
- Qt VTK交互风格的信号到小部件
- 将对象数组的引用传递给函数
- 什么时候在C++中返回常量引用是个好主意
- 我想将一个对T类型的非常量左值引用绑定到一个T类型的临时值
- 何时在引用或唯一指针上使用移动语义
- 如何在c++中使用引用实现类似python的行为
- 获取日期异步信号安全吗?如果在信号处理程序中使用,它会导致死锁吗
- 编译C++时未定义的引用
- Ctypes wstring通过引用传递
- c++r值引用应用于函数指针
- 理解c++中的引用
- C++取消引用指针.为什么会发生变化
- 如何修复此错误:未定义对"距离(浮点数,浮点数,浮点数,浮点数,浮点数)"的引用
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- 如何将点击的信号和插槽添加到qt中的自定义按钮中
- 当通过引用传递 QObject 时,C++信号的参数在 QML 中显示为"未定义"
- 在 qt 控制台应用程序中未定义对 'vtable for myObj' 的引用 - 信号和插槽
- Qt:通过常量引用的信号槽
- 未在此作用域中声明的信号/对class::方法的未定义引用
- Qt 5:无法声明采用右值引用的信号