Python 我如何向插槽传递比信号在pyqt4中发送的参数更多的参数?
我正在为KDE4编写python plasmoid 我有一个QHttp对象,它发出信号“done(bool)”,并将其分配给我的functionB。我也想把这个值传给函数B。如果我使用lambda传递该值,则该信号不会触发functionBPython 我如何向插槽传递比信号在pyqt4中发送的参数更多的参数?,python,pyqt4,signals,Python,Pyqt4,Signals,我正在为KDE4编写python plasmoid 我有一个QHttp对象,它发出信号“done(bool)”,并将其分配给我的functionB。我也想把这个值传给函数B。如果我使用lambda传递该值,则该信号不会触发functionB def functionA(self): self.http=QHttp() ... valueA="valueA" self.connect(self.http, SIGNAL("done (bool)"), lambda valueA:
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不调用functionB。如果这样做有效,请尝试:
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
...
谢谢,这很有效。我还想断开连接,self.disconnect(self.http,SIGNAL(“done(bool)”),lambda done:self.functionB(done,valueA))不起作用。我该怎么做?@volk你能在我的编辑中使valueA成为一个实例变量吗?是的,我是在你的编辑中这样做的,所以我也可以简单地断开连接。非常感谢你。