PyQt信号:设置变量

时间:2012-07-26 13:59:23

标签: python qt pyqt pyside

我有一个信号,它只需要做一件事:如果发出一个给定变量的给定值。为这个创建方法似乎很愚蠢,所以我在想:有没有办法做这样的事情:

self.myButton.clicked.connect(self.someVariable = None)

1 个答案:

答案 0 :(得分:3)

使用lambda:

self.myButton.clicked.connect(lambda : self.someVariable = None)

注意:

    在插槽调用时引用了
  1. self,因此您可能希望这样做:

    self.myButton.clicked.connect(lambda self=self: self.someVariable = None)

  2. 某些小部件使用参数发送信号,您必须将它们放在lambda定义中。

    self.myButton.clicked.connect(lambda checked=False, self=self: self.someVariable = None)

  3. 更新:

    lambda中不允许赋值,因此您必须使用实际函数或类似的东西:

    self.myButton.clicked.connect(lambda self=self: setattr(self, 'someVariable', None))