PyQt5 两种信号与槽函数的连接方法
时间:2022-11-22 20:00:00
问题
解释问题:PyQt5 如何连接信号和槽函数,执行相应的功能?
解决办法
1. 装饰方法:@pyqtSlot()
装饰器
from PyQt5.QtCore import pyqtSlot # 信号和槽函数 @pyqtSlot() def on_pushButton_clicked(self): print(点击按钮)
规则:
- @pyqtSlot():修改关键字,表示以下是完整的信号槽函数
- 函数名称的特殊要求:
on_控件对象名_信号名(self, 内置参数)
同一个控件
同时要写多个信号和槽函数
只需要写一遍@pyqtSlot()
其他函数可以在关键分开
# 同一控件:lineEdit_2(控件对象名) @pyqtSlot() def on_lineEdit_2_returnPressed(self): print(触发信号 returnPressed') def on_lineEdit_2_textChanged(self): print(触发信号 textChanged')
2. connect连接法
直接使用示例:
# 信号连接在初始化函数中 self.pushButton.clicked.connect(self.A) # 槽函数 def A(self): print(点击按钮)
规则:
- 语法规则:
self.控制对象名称.信号名称.connect(self.槽函数名称)
- 有参数时,
槽函数名称
部分写成lambda 参数名: 函数名(参数名)
- 没有参数时,槽函数不需要写括号
()