Initial knowledge of custom signals-the use of multiple parameters: "sendmsgmust"
Steps:
1. Define stage
1. Define signal
2. Signal trigger method
3. Define slot function
2. Use stage:
1. Instantiate the signal
2. Instantiate the slot
3. Binding of the signal slot
4. Send the signal
"""
自定义信号
"""
from PyQt5.QtCore import *
class MyTypeSignal(QObject):
# 定义一个信号
sendmsg=pyqtSignal(object)
# 发送多个参数的信号[str,int,int,str]类型的数据
sendmsgmust=pyqtSignal(str,int,int,str)
# 信号触发事件的方法
def run(self):
# self.sendmsg.emit("Hello Python")
self.sendmsg.emit("我的pyqt5的学习之旅,开始了")
# 信号触发事件的方法--多个参数的方法:参数与上面对应
def runmust(self):
self.sendmsgmust.emit("hello",100,100,"Tom")
class MySlot(QObject):
"""
定义槽函数
"""
def get(self,msg):
print("我想说:"+msg)
def getmust(self,msg,x,y,name):
print("{0}:{3}:你的每科成绩是,数学:{1}分;语文:{2}分".format(msg,x,y,name))
if __name__ == '__main__':
# 实例化 信号 槽
send=MyTypeSignal()
slot=MySlot()
# 信号和槽的绑定
send.sendmsg.connect(slot.get)
send.sendmsgmust.connect(slot.getmust)
# 发送信号
send.run()
send.runmust()
# #断开信号与槽的关系
# send.sendmsg.disconnect(slot.get)
# send.run() #发送信号,没有信号产生