如何管理通过信号槽传递的对象的删除?

Phi*_*ent 3 c++ qt multithreading memory-management signals-slots

我刚刚使用videoInput库和OpenCV为我的应用程序添加了网络摄像头支持.

视频流在QThread(生产者)中,并发出一个信号,为我的应用程序发送QImage*以更新需要它的图形项目.

内存管理方面是我在插槽完成使用后删除了消费者插槽中的QImage*.现在的问题是我希望有多个对象接受QImage*数据.

在这个例子中,我现在必须跟踪数据的所有使用者(带引用计数),然后在完成所有这些消息后删除QImage*(最有可能在生产者线程中)吗?

tho*_*ler 8

使用智能指针应该为您完成大部分工作:QSharedPointer

  • +1:这可能正好*为什么Qt在他们的框架中提供了智能指针. (3认同)