Python 是否可以使用QDoubleSpinBox值更改为与if条件一起执行某些操作的lamba?

Python 是否可以使用QDoubleSpinBox值更改为与if条件一起执行某些操作的lamba?,python,lambda,Python,Lambda,在下面的示例代码中是否可以使用lambda,或者是否有任何单行解决方案? 如果可能怎么办? 下面是示例代码: self.total_spin.valueChanged.connect(self.valuechanged) def valuechanged(self): if self.total_spin.value() != 0.00: self.SpinBox_one.setMaximum(100.00) else: self.SpinBox_

在下面的示例代码中是否可以使用lambda,或者是否有任何单行解决方案? 如果可能怎么办? 下面是示例代码:

self.total_spin.valueChanged.connect(self.valuechanged)
def valuechanged(self):
    if self.total_spin.value() != 0.00:
        self.SpinBox_one.setMaximum(100.00)
    else:
        self.SpinBox_one.setMaximum(0.00)

是的,例如,您可以将新值直接作为参数传递

self.total_spin.valueChanged.connect(lambda new_value: self.valuechanged(new_value))
def valuechanged(self, new_value):
    if new_value != 0.00:
        self.SpinBox_one.setMaximum(100.00)

在一行中包含lambda关键字的等效代码:

self.total_spin.valueChanged.connect(lambda value: self.SpinBox_one.setMaximum(100 if value else 0))

我想把我的示例场景缩短为一行。但是你的答案也是有多行,我们两个例子之间几乎没有区别。我的错,我误解了你的问题。我试过你的行,它没有设置
self.SpinBox\u one.setMaximum(100.00)
,在
self.total\u spin
上更改值后没有错误。它从第一次尝试起就不起作用。如果
self.total\u spin
设置大于0,然后再次设置为0,则仅工作。我从您给定的参考代码中尝试了此代码
self.total\u spin.valueChanged.connect(lambda值:self.SpinBox\u one.setmax(100.00 if value else 0.00))
正在工作。请编辑您的答案,我需要接受这是您的信用…@user3030327获取的if语句顺序错误,我的错误。现在已修复。请查找已编辑的问题。我还添加了else语句。请编辑答案。我希望我的要求不会打扰你。