我正在为KDE4写一个python plasmoid。
我有一个QHttp对象,它发出信号“done(bool)”并将其分配给我的functionB。我也想将functionA传递给functionB。如果我使用 lambda 传递值,则信号永远不会触发functionB。
def functionA(self):
self.http=QHttp()
...
valueA="valueA"
self.connect(self.http, SIGNAL("done (bool)"), lambda valueA: self.functionB)
self.get("/myurl.html")
def functionB(self, done, valueA):
...
有什么想法吗?
答案 0 :(得分:1)
你的lambda没有调用functionB。试试这是否有效:
lambda done: self.functionB(done, valueA)
EDIT。也许这种方法会更好:
def functionA(self):
self.http=QHttp()
...
self.valueA="valueA"
self.connect(self.http, SIGNAL("done (bool)"), self.functionB)
self.get("/myurl.html")
def functionB(self, done, valueA=None):
if valueA is None:
valueA = self.valueA
...