PyQt5中为QPushButton的cliked信号按规则添加一个槽函数单击一次槽函数执行两次

原创 创建时间:2019-09-24 访问量:21 赞:0 踩:0

1、在UI_Designer界面设计上添加了一个QPushButton,objectName为btnClick,添加的槽函数的名称为:

def on_btnClick_clicked(self):
    print("单击")

当单击QPushButton时会打印两次“单击”

2、这是因为QPushButton类中的clicked信号有两个,一个是不带参数的clicked()信号,另一个是带一个参数的clicked(bool)信号,在单击时这两个信号都会发送,而我们理论上应该只需要响应其中一个clicked信号即可。

3、在槽函数上加一个修饰@pyqtSlot(),这个修饰会使槽函数响应clicked()无参数的信号,如果加上@pyqtSlog(bool)就会使槽函数响应clicked(bool)的信号,当然此时槽函数可以带一个参数,也可以不带。

@pyqtSlot()
def on_btnClick_clicked(self):
    print("单击")

也可以这样定义:

@pyqtSlot(bool)
def on_btnClick_clicked(self, ch):
    print("单击")

4、注意在文件头部引入:

from PyQt5.QtCore import pyqtSlot
评论
 我想说:
==已经到底了==
关注: 粉丝: 积分:
Copyright ©2018 工联信息网——打造最实用且免费的互联网资源共享社区
如有疑问和需求请致邮箱:need@glxxw2018.com
不良信息反馈及建议请致邮箱:accusation@glxxw2018.com
沪ICP备18018158号-1