我有一个信号,它只需要做一件事:如果发出一个给定变量的给定值。为这个创建方法似乎很愚蠢,所以我在想:有没有办法做这样的事情:
self.myButton.clicked.connect(self.someVariable = None)
答案 0 :(得分:3)
使用lambda:
self.myButton.clicked.connect(lambda : self.someVariable = None)
注意:
self
,因此您可能希望这样做:
self.myButton.clicked.connect(lambda self=self: self.someVariable = None)
某些小部件使用参数发送信号,您必须将它们放在lambda定义中。
self.myButton.clicked.connect(lambda checked=False, self=self: self.someVariable = None)
更新:
lambda中不允许赋值,因此您必须使用实际函数或类似的东西:
self.myButton.clicked.connect(lambda self=self: setattr(self, 'someVariable', None))