信号与槽的故事
在学习信号与槽的过程中,我感觉有那么一点点的绕,所以我通过一个形象化去理解这个信号与槽,我是在准备使用pyqt5时开始学习信号槽的知识的。接下来进入我的故事
我的故事是乡村广播站
故事主角:乡村广播站,广播员,村民
设备:广播发射器,乡村大喇叭
故事的起因是,为了响应党中央号召,疫情期间不出门,不聚会,各个村启用了好久不用的乡村广播,想通过大喇叭喊话宣传
于是我们的广播站成立(MyTypeSignal),广播站有一台广播发射器(sendmsg),它有一个功能(发射型号–>emit()),,它是通过(run方法启动的)
面向的村民(MySlot),村民不需要设备,只需要听村口的大喇叭(get函数),大喇叭接受到信息,向村民播报
广播站需要一个广播员,负责启动和播报信息, send.sendmsg.connect表示向哪些大喇叭发送信息
(用于记录学习过程,不喜勿喷)
'''
自定义信号
'''
from PyQt5.QtCore import *
class MyTypeSign(QObject): ##信号类广播站
sendmsg=pyqtSignal(object)#广播发射器
sendmsg1=pyqtSignal(str,int,int)
def run(self): #启动广播
self.sendmsg.emit('hello pyqt5')#发射的信号内容
def run1(self):
self.sendmsg1.emit('hello',2,4)
class MySlot(QObject):
def get(self,msg):#获取信号的大喇叭
print("信息:"+msg)#
def get1(self,msg,b,c):
print(msg)
print(b+c)
if __name__ == '__main__':
send=MyTypeSign()#广播员
slot=MySlot()#接受的民众
send.sendmsg.connect(slot.get)#向哪些喇叭传递信息
send.sendmsg1.connect(slot.get1)
send.run()#启动
send.run1()