Skip to main content
 首页 » 编程设计

python之我怎样才能传递给信号槽的信号在 pyqt4 中发送的参数更多

2025年05月04日8mate10pro

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