2013-06-12 21 views
1

什么是正确的方式断开两个QObject的对方,以便从一个对象发出的更多信号触发另一个对象的插槽?这两个物体都不会被销毁,所以disconnect()will not be called inQObject::~QObject()。我在文档中看到disconnect()方法的两个版本,并且都没有指向两个对象的指针。正确的方式断开信号从两个QObject不被破坏/删除

断开连接后,接收对象插槽中不再接收任何信号是非常重要的。缓冲器清除未处理的信号时触发几个触发器即可,但信号必须在很短的时间内停止。

似乎有关于正确的方式做到这一点的困惑。

回答

4

Qt docs

[到]断开一个特定的接收器:

disconnect(myObject, 0, myReceiver, 0); 

一旦被调用,从myObject所有连接的信号,以myReceiver的插槽将断开连接。

+2

谢谢!对于未来的读者,你也可以使用'myobject-> disconnect(myReceiver)''更优雅。 –