python-gui-pyqt5的使用方法-4--自定义信号的初识--多参数的使用

自定义信号的初识–多参数的使用:“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()    #发送信号,没有信号产生

猜你喜欢

转载自blog.csdn.net/wtt234/article/details/114021027
今日推荐