最近做了几次测试,在PyQt中如果使用与槽函数同名的实例方法可能会导致不可控的错误。
案例1:如果两个信号映射到同名的槽函数,虽然参数不一样,但真正响应的槽函数是最后定义的槽函数,具体案例请见《PyQt(Python+Qt)学习随笔:clicked和clicked(bool)信号连接同名函数出现的问题》
案例2:在一个槽函数中定义了一个与槽函数同名但参数多了几个的实例方法,结果在跟踪程序时发现信号发送后,槽函数根本没响应,程序在Pycharm中报“Process finished with exit code 1073741845”退出。
这两个问题本质上是一致的,都是PyQt将信号映射的槽函数查找时是不带参数查找的,结果找到的是后定义的同名函数,由于案例中参数多余槽函数的参数个数,系统就出错了。
![](https://i-blog.csdnimg.cn/blog_migrate/d7c2003123ac5a70a05e7e0a0122c6f3.png)
博客地址:https://blog.csdn.net/LaoYuanPython
老猿Python博客文章目录:https://blog.csdn.net/LaoYuanPython/article/details/98245036