信号与槽N对N

···
from PyQt5.QtCore import *

class NNSignal(QObject):

# 定义一个信号
signal1 = pyqtSignal()
# 发送3个参数的信号
signal2 = pyqtSignal(int)
signal3 = pyqtSignal()

def __init__(self):
    super().__init__()
    self.signal1.connect(self.signal_call1)
    self.signal1.connect(self.signal_call11)
    self.signal2.connect(self.signal1)
    self.signal3.connect(self.signal_call1)

    self.signal1.emit()
    self.signal2.emit(10)     # signal1关联的是信号1,所以触发的还是信号1
    self.signal3.emit()

    # 解除关联
    self.signal1.disconnect(self.signal_call1)
    self.signal1.disconnect(self.signal_call11)
    self.signal2.disconnect(self.signal1)

    self.signal1.connect(self.signal_call1)
    self.signal2.connect(self.signal_call2)

    self.signal1.emit()
    self.signal2.emit(100)

def signal_call1(self):
    print("signal1 emit")

def signal_call11(self):
    print("signal1 call 11")

def signal_call2(self, val):
    print("signal2 emit, value=", val)

if name == 'main':
NNSignal()

posted @   星空28  阅读(6)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
点击右上角即可分享
微信分享提示