大家都在看
Qt 拾遗 003 disconnect
最佳答案
QObject 提供了如下静态方法:
disconnect 用于将对象发送方中的信号与对象接收方的信号槽连接方法断开。如果成功断开,则返回 true,否则返回 false。
当涉及的任何对象被销毁时,将删除信号插槽连接。
disconnect() 通常以三种方式使用,如下面的示例所示:
与之等效的非静态重载函数:
与之等效的非静态重载函数:
与之等效的非静态重载函数:
nullptr 可以用作通配符,分别表示“任何信号”、“任何接收对象”或“接收对象中的任何插槽”。
我们可以发现:上述调用中发送者始终不能为空。也就是说,我们无法在一次调用中断开来自多个对象的信号。
如果 signal 指针为空(被指定为 nullptr),则断开接收者方法与发生者对象的所有信号的连接。否则,只有指定的信号被断开连接。
如果 receiver 指针是空的(被指定为 nullptr),将会断开任何连接到信号的槽。否则,将只断开与 receiver 有关的连接。
如果 method 指针为 nullptr,则断开与接收者的全部连接。如果不是,那么只有名为 method 指定的槽将被断开连接,其他所有插槽将保持连接。如果 receiver 指针是被指定为 nullptr 时, method 也必须同时为 nullptr,也就是说我们不允许通过不指定 receiver 的方式来断开所有名为 method 的槽。
声明:知趣百科所有作品均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请在页面底部查找“联系我们”的链接,并通过该渠道与我们取得联系以便进一步处理。