在使用信号调用disconnect()方法断开信号和槽的连接时,信号可以带签名也可不带签名,参数可以没有也可以有一个,这些组合情况下disconnect的处理是不同的,具体情况如下:
- PyQt5.14的官网上介绍说如果参数为空,表示信号连接的所有槽都会断开,这句话是有歧义的,只是断开所有与信号签名匹配的槽,如果调用时信号不带签名,则默认断开第一个签名对应的所有槽;
- 如果断开时信号带签名,参数为槽函数,但二者不匹配时则会引发异常;
- 如果断开时信号带签名,参数为connection对象,断开的是与签名匹配的连接信号和槽,不按参数进行连接断开;
- 如果断开时信号不带签名,参数为connection对象,则按connection对象断开连接。