本帖最后由 15195775117 于 2020-7-20 09:33 编辑
单参数和多参数的信号槽通信的主要区别在于定义和使用(以下代码红色部分)
单参数的信号槽通信 from PyQt5.QtCore import QObject,pyqtSignal
class QTypeSignal(QObject):#信号对象
sendmsg=pyqtSignal(object)#定义信号
def __init__(self):
super(QTypeSignal,self).__init__()
def run(self):
self.sendmsg.emit('Hello Pyqt5')#发射信号
class QTypeSlot(QObject):#槽对象
def __init__(self):
super(QTypeSlot,self).__init__()
def get(self,msg):#槽函数
print("QSlot get msg =>"+msg)
if __name__ == '__main__':
send = QTypeSignal()
slot = QTypeSlot()
send.sendmsg.connect(slot.get)#信号绑定到槽函数
send.run()
send.sendmsg.disconnect(slot.get)#断开槽函数
send.run()
多参数的信号槽通信 from PyQt5.QtCore import QObject,pyqtSignal
class QTypeSignal(QObject):#信号对象
sendmsg=pyqtSignal(str,str)#定义信号与参数类型
def __init__(self):
super(QTypeSignal,self).__init__()
def run(self):
self.sendmsg.emit('第一个参数','第二个参数')#发射信号
class QTypeSlot(QObject):#槽对象
def __init__(self):
super(QTypeSlot,self).__init__()
def get(self,msg1,msg2):#槽函数
print("QSlot get msg =>"+msg1+' '+msg2)
if __name__ == '__main__':
send = QTypeSignal()
slot = QTypeSlot()
send.sendmsg.connect(slot.get)#信号绑定到槽函数
send.run()
send.sendmsg.disconnect(slot.get)#断开槽函数
send.run()
|