我正在为 KDE4 编写 python plasmoid。
我有一个 QHttp 对象,它发出信号“done (bool)”,我将它分配给我的函数 B。我也想将 valueA 传递给 functionB。如果我使用 lambda 传递值,信号永远不会触发函数 B。
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):
...
有什么想法吗?
请您参考如下方法:
您的 lambda 不调用函数 B。试试这个是否可行:
lambda done: self.functionB(done, valueA)
编辑。也许这种方法会更好:
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
...
