pyqt6信号与槽的作用
整体过程
对象(控件)接收到一个信号(类似clicked这样的函数),就会对接受者(自身或者其他控件)发出一个我被点击了的信息,然后这个接受者就会执行槽(函数方法)。
信号
简单理解就是监控方法,当对象得知执行了这个方法(信号)后就会传递给接收者信息
槽
简单理解就是执行的方法,当接受信号后就会执行这个方法
值得注意的是,这个槽可以是控件的方法,也可以是我们自己写的方法
代码中配置信号与槽
面向过程中的信号与槽
代码
重点代码:
button.clicked.connect(lambda :pnt())这串代码是槽函数的代码
当按钮被点击时就会执行pnt函数,而pnt会打印槽函数被执行
结果
重点注意事项
这里用lambda表达式正常执行,不能直接把函数写上。
或者是把函数写上,但是不加上括号,只写函数名。
面向对象的信号与槽
代码
执行结果
注意事项
1.面向对象中不能在类中使用sys这些模块的东西,没有继承那些类,所以要写到外面
2.绑定槽直接self.方法名就可以了
designer中配置信号与槽
点击这个按钮
之后进入配置信号与槽的状态。
鼠标拖动连接两个控件
配置信号与槽
配置成功
这样的话,按钮接收到点击的信号,就会发给文本执行清除文本的槽函数。
信号对多槽,多信号对一槽
这里信号与槽并不是一一对应的关系,可以一对多。
可以实现一个按钮对应多个槽函数
按下按钮,直接全部清空。