自定义信号的初识–多参数的使用:“sendmsgmust”
步骤:
一.定义阶段
1.定义信号
2.信号触发方法
3.定义槽函数
二.使用阶段:
1.实例化信号
2.实例化槽
3.信号槽的绑定
4.发送信号
"""
自定义信号
"""
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() #发送信号,没有信号产生