Hor*_*ter 8 c++ lambda qt qt5.5
在早期的Qt 5版本中,我必须将lambdas与信号断开,如下所示:" 断开Qt5中的lambda函数 ".
在这里我发现了以下语句: 当'receiver'被销毁时没有自动断开,因为它是一个没有QObject的仿函数.但是,由于5.2存在重载,因此会增加"上下文对象".当该对象被销毁时,连接被破坏(上下文也用于线程关联:lambda将在用作上下文的对象的事件循环的线程中调用).
ajs*_*ort 12
当通过QObject :: ~QObject()销毁对象时,Qt会自动删除与对象之间的所有连接.因此,如果创建与lambda的连接,则删除发送对象时,将自动清除连接.你没有,以前没有需要,自己断开它.
当您需要对连接的生命周期进行更细粒度的控制时,将使用您引用的上下文对象.当您希望在销毁另一个对象(上下文对象)时删除连接时使用此方法.如果您需要在销毁发件人之前执行此操作,则可以更轻松地删除连接.
总结:您不需要手动断开lambda,它们会自动清理.您可以使用上下文对象在销毁发件人对象之前删除连接.
| 归档时间: |
|
| 查看次数: |
1190 次 |
| 最近记录: |