如何传递到一个插槽而不是信号在pyqt4中发送的参数?

时间:2012-02-23 13:07:46

标签: python pyqt4 signals

我正在为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):
  ...

有什么想法吗?

1 个答案:

答案 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
  ...