How to use python-gui-pyqt5-4--Introduction to custom signals--the use of multiple parameters

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()    #发送信号,没有信号产生

Guess you like

Origin blog.csdn.net/wtt234/article/details/114021027