在Qt中,控件中的clicked()信号和clicked(bool)信号是两个不同的信号,映射槽函数时,clicked()信号映射到的槽函数是不带参的,clicked(bool)信号映射到的槽函数是带参数的。
经验证测试,如果把一个控件的clicked()信号和clicked(bool)信号映射到名字相同但参数不同的槽函数会导致二者最终会执行同一个槽函数,具体执行哪个槽函数由代码中槽函数的定义顺序决定,执行的是后定义的槽函数。
我们来验证一下,在一个PushButtong上分别定义这两个信号与槽函数的连接,它们连接到同名的槽函数clickButton,如图:

槽函数定义代码如下:

pythondef clickButtonNoPar(self):pButton = self.sender()print(f"clickButtonNoPar  was called!")def clickButton(self,status):pButton = self.sender()print(f"clickButton  was called,status={status}")

在PyCharm执行情况如下:

上图中,蓝笔圈的部分是槽函数的定义代码,黄色荧光笔标记时执行的输出,可以看到,按钮的clicked()信号和clicked(bool)信号映射到同名(clickButton)但参数不同的槽函数会导致二者最终会执行同一个槽函数clickButton(self,status)。如果把上述槽函数的定义代码顺序倒换一下,就会执行槽函数clickButton(self)。

当然,如果二者映射到不同槽函数,这个问题就不会存在。

之所以出现这个问题,老猿认为是PyQt内部槽函数映射机制存在缺陷导致的。


博客地址:https://blog.csdn.net/LaoYuanPython

老猿Python博客文章目录:https://blog.csdn.net/LaoYuanPython/article/details/98245036

PyQt(Python+Qt)学习随笔:clicked和clicked(bool)信号连接同名函数出现的问题相关推荐

  1. PyQt(Python+Qt)学习随笔:Qt Designer中部件的accessibleDescription和accessibleName辅助阅读属性

    accessibleDescription和accessibleName属性都是用于残疾人辅助阅读的,这两个属性都有国际化属性(关于国际化请参考<PyQt(Python+Qt)学习随笔:Qt D ...

  2. PyQt(Python+Qt)学习随笔:Qt Designer中部件的调色板palette属性和字体font属性设置

    一.调色板 在Qt Designer的部件属性中,有个部件调色板(palette)的属性,进入后,如下图所示: 1.调色板palette Qt中提供的调色板palette用于管理控件的外观显示,对应P ...

  3. PyQt(Python+Qt)学习随笔:QListView的itemAlignment属性

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 QListView的itemAlignment属性用于控制每个数据项的对齐方式,其类型为枚举类Qt. ...

  4. PyQt(Python+Qt)学习随笔:formLayout的layoutLabelAlignment 属性

    一.引言 Qt Designer的表单布局(formLayout)中,layoutLabelAlignment 用于控制表单布局中标签的水平对齐方式(包括垂直和水平方向两个方向).如图: 此属性实际对 ...

  5. PyQt(Python+Qt)学习随笔:QTreeView树形视图的indentation属性

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 QTreeView树形视图的indentation属性用于控制视图中每级数据项之间的缩进,对于顶级项 ...

  6. PyQt(Python+Qt)学习随笔:Qt Designer中部件的快捷菜单策略(contextMenuPolicy)取值及含义

    在Qt Designer中可以设置部件的快捷菜单策略,快捷菜单通过在部件上点击鼠标右键触发. 快捷菜单策略通过枚举类型Qt.ContextMenuPolicy来定义,对应枚举类型取值及含义如下: 通过 ...

  7. PyQt(Python+Qt)学习随笔:复选框checkBox的tristate属性

    在Qt Designer中,tristate属性是复选框checkBox相比较于QAbstractButton多出来的唯一属性. tristate属性表示复选框是三种状态还是两种状态,如果trista ...

  8. PyQt(Python+Qt)学习随笔:Qt Designer中怎么给toolBar添加按钮

    在Designer中创建了一个MainWindow窗体,当想在其中的toolBar中添加toolButton时发现怎么也放不上去,最终才发现toolBar中的按钮只能通过直接拖拽Action编辑器中的 ...

  9. PyQt(Python+Qt)学习随笔:Qt Designer中部件的enabled属性

    enabled属性非常简单,最开始老猿没准备介绍该属性的,因为大家都应该知道,但仔细看了看官网文章,觉得还是有些细节可能很少有人注意到,因此还是在此介绍一下. enabled属性用于表示部件是否可用, ...

  10. PyQt(Python+Qt)学习随笔:Designer中属性设置界面的属性字体使用粗黑体的含义

    老猿Python博文目录 老猿Python博客地址 使用了好几个月的Designer,今天才发现属性编辑界面的属性名有的为粗而黑,有的则不是,如图: 稍微测试了一下,发现是对属性值进行过调整,不再是缺 ...

最新文章

  1. os.path.dirname( __ file __ ) 2018/6/2
  2. for循环的break和continue
  3. php查询mysql返回大量数据结果集导致内存溢出的解决方法
  4. android 打开系统相册_这5款常用Android手机自动化测试工具你要收藏
  5. linux管理员清理主目录,在Linux上如何清理垃圾系统管理员
  6. 利用c51进行数模转换并在液晶屏上显示_7.0寸tft触摸液晶屏可满足不同操作需求...
  7. Practical JAVA(三)关于final
  8. C++基础学习笔记 day03
  9. MFC中窗口类、句柄的获取
  10. 【Rust指南】错误的分类与传递|使用kind进行异常处理
  11. ev4加密视频转换成MP4格式
  12. 使用标准输出流(system.out)和打印流 (PrintWriter)来读取txt文件
  13. iphone红外传感器
  14. L1-054 福到了(15 分)
  15. 苹果手机的uuid查询_苹果Mac查询UUID信息, 硬盘接口类型的查询方法(图文)
  16. 痛心!中兴程序员跳楼始末:或成其公司内部矛盾牺牲品
  17. KingbaseES V8R6 ksql 关闭自动提交
  18. 多区域复制——《超级处理器》应用
  19. 谷歌浏览器,上传文件卡死(无响应)
  20. java-net-php-python-jspm零担快跑物流管理系统计算机毕业设计程序

热门文章

  1. 麻省理工遍地走,6年经验安卓程序员面试微软,靠这份思维脑图拿下Offer!
  2. 计算机网络系统工程监理,GB-T 19668.4-2007 信息化工程监理规范 第4部分:计算机网络系统工程监理规范.pdf...
  3. 勘测定界界址点坐标交换格式的读写
  4. Python的EEMD实现
  5. 粒子群算法(6)-----几个适应度评价函数
  6. Kmeans算法实现
  7. 51单片机教室人数进出统计检测数码管显示装置红外传感器
  8. 双目测距算法matlab模拟,基于BM算法的双目测距.pdf
  9. T6 根据书籍条形码ISBN查询书籍,完整的方案,可安装
  10. linux ubuntu 安装 XDroid失败