1
我想在對象列表中執行一個函數,並存儲結果。 我在下面的代碼中存在的問題是,儘管我嘗試斷開所有信號,但functionC始終以某種方式持續觸發。 (斷開連接輸出False)使用PyQt4,雖然我斷開一個插槽,但它一直觸發
class object(...):
def init(self):
...
self.emit(SIGNAL('result(bool)', result)
...
class classA(...):
def functionA(self):
self.results=[]
self.i=0
self.object[...]=... # len(self.object)=n
self.functionB()
def functionB(self):
self.connect(self.object[self.i], SIGNAL('result(bool)'), lambda bool: self.functionC(bool))
self.object[self.i].init()
def functionC(self, result):
print self.disconnect(self.object[self.i], SIGNAL('result(bool)', lambda bool: self.functionC(bool)) # outputs False (why cannot I disconnect it?)
self.i+=1
self.results.append(result)
if self.i==len(self.object):
print "finish"
self.i=0
return
self.functionB()
任何人都可以想象這個問題?謝謝