| 本帖最后由 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()
 
 
 |