class Register:
def __init__(self):
self.connections={}
def add(self,occasion,function):
if occasion not in self.connections.keys():
self.connections[occasion]=[function]
else:
self.connections[occasion].append(function)
def remove(self,occasion,function):
if occasion not in self.connections.keys():
self.connections[occasion].remove(function)
def execute(self,occasion):
if occasion in self.connections.keys():
for function in self.connections[occasion]:
function()
register=Register()
class Button:
def clicked(self):
register.execute("clicked")
class application:
def __init__(self):
self.button=Button()
register.add("clicked",self.doFirstFunction)
register.add("clicked",self.doSecondFunction)
def doFirstFunction(self):
print("function called")
def doSecondFunction(self):
print("another function called")
app=application()
app.button.clicked()
一个信号可以引发多个槽,稍加改动就可以实现一个信号引发信号