PyQt(Python+Qt)学习随笔:调用disconnect进行信号连接断开时的信号签名与断开参数的匹配要求

PyQt(Python+Qt)学习随笔:调用disconnect进行信号连接断开时的信号签名与断开参数的匹配要求

在使用信号调用disconnect()方法断开信号和槽的连接时,信号可以带签名也可不带签名,参数可以没有也可以有一个,这些组合情况下disconnect的处理是不同的,具体情况如下:

  1. PyQt5.14的官网上介绍说如果参数为空,表示信号连接的所有槽都会断开,这句话是有歧义的,只是断开所有与信号签名匹配的槽,如果调用时信号不带签名,则默认断开第一个签名对应的所有槽;
  2. 如果断开时信号带签名,参数为槽函数,但二者不匹配时则会引发异常;
  3. 如果断开时信号带签名,参数为connection对象,断开的是与签名匹配的连接信号和槽,不按参数进行连接断开;
  4. 如果断开时信号不带签名,参数为connection对象,则按connection对象断开连接。

PyQt(Python+Qt)学习随笔:调用disconnect进行信号连接断开时的信号签名与断开参数的匹配要求

老猿Python,跟老猿学Python!