Python PyQt信号:设置变量
我有一个信号,它只需要做一件事:如果发出,给变量指定一个给定的值。为此创建一个方法似乎很愚蠢,所以我在想:有没有这样的方法:Python PyQt信号:设置变量,python,qt,pyqt,pyside,Python,Qt,Pyqt,Pyside,我有一个信号,它只需要做一件事:如果发出,给变量指定一个给定的值。为此创建一个方法似乎很愚蠢,所以我在想:有没有这样的方法: self.myButton.clicked.connect(self.someVariable = None) self.myButton.clicked.connect(lambda self=self: setattr(self, 'someVariable', None)) 使用lambda: self.myButton.clicked.connect(lamb
self.myButton.clicked.connect(self.someVariable = None)
self.myButton.clicked.connect(lambda self=self: setattr(self, 'someVariable', None))
使用lambda:
self.myButton.clicked.connect(lambda : self.someVariable = None)
注:
self
在插槽调用时被引用,因此您可能需要执行以下操作:
self.myButton.clicked.connect(lambda self=self:self.someVariable=None)
self.myButton.clicked.connect(lambda checked=False,self=self:self.someVariable=None)
self.myButton.clicked.connect(self.someVariable = None)
self.myButton.clicked.connect(lambda self=self: setattr(self, 'someVariable', None))
听起来像是lambda的工作。仅供参考,stackoverflow不喜欢签名/签核。它占用了不必要的空间。谢谢你指出这一点!我得到:SyntaxError:lambda不能包含赋值,我尝试了你提到的两个版本,是的,你是对的。这行不通。我想你必须使用真正的函数,而不是像这样摆弄:
self.myButton.clicked.connect(lambda:setattr(self'someVariable',None))