将两个QObject彼此断开连接的正确方法是什么,以便从一个对象发出的更多信号不会触发另一个对象的插槽?这两个对象都不会被销毁,所以disconnect()
will not be called in QObject::~QObject()
。我在文档中看到了disconnect()
方法的两个版本,并且没有一个指针指向两个对象。
重要的是,在断开连接后,接收对象插槽中不再接收信号。缓冲区清除未处理信号时的一些触发是可以的,但信号必须在很短的时间内停止。
对于正确的方法,似乎存在一些混淆。
答案 0 :(得分:5)
来自Qt docs:
[To]断开特定接收器:
disconnect(myObject, 0, myReceiver, 0);
调用此功能后,myObject
信号到myReceiver
插槽的所有连接都将断开连接。