我有一个信号,它只需要做一件事:如果发出,则为变量分配给定值。为此创建一个方法似乎很愚蠢,所以我在想:有没有办法做这样的事情:
self.myButton.clicked.connect(self.someVariable = None)
使用 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))