2024-10-01 04:54:24 发布
网友
我想在main类中有一个函数,它不仅有self参数。在
class Ui_Form(object): def clearTextEdit(self, x): self.plainTextEdit.setPlainText(" ") print("Script in Textbox is Cleaned!",)
x将是我的附加参数,我希望clearTextEdit被点击调用。在
它不允许我在clicked中写x作为参数。你能帮助我吗!在
这是使用lambda的完美场所:
self.pushButton_3.clicked.connect(lambda: self.clearTextEdit(x))
请记住,connect需要一个没有参数的函数,因此我们必须在另一个函数中结束函数调用。在
connect
你最初的陈述
当您调用connect时,实际上是在调用self.clearTextEdit(x),然后您得到了一个错误,因为clearTextEdit没有返回一个没有参数的函数,这正是connect想要的。在
self.clearTextEdit(x)
clearTextEdit
相反,通过传递lambda: self.clearTextEdit(x),我们给connect一个没有参数的函数,当调用该函数时,将调用self.clearTextEdit(x)。上面的代码相当于
lambda: self.clearTextEdit(x)
def callback(): return self.clearTextEdit(x) self.pushButton_3.clicked.connect(callback)
但是对于lambda,我们不必命名为“callback”,我们只需直接传递它。在
如果您想了解更多关于lambda函数的信息,可以查看this question获取更多详细信息。在
另外,我注意到您在clearTextEdit中的任何地方都没有使用x。有必要让clearTextEdit首先接受一个参数吗?在
x
解决方案
这是使用lambda的完美场所:
请记住,
connect
需要一个没有参数的函数,因此我们必须在另一个函数中结束函数调用。在解释
你最初的陈述
^{pr2}$当您调用
connect
时,实际上是在调用self.clearTextEdit(x)
,然后您得到了一个错误,因为clearTextEdit
没有返回一个没有参数的函数,这正是connect
想要的。在兰姆达?在
相反,通过传递
lambda: self.clearTextEdit(x)
,我们给connect
一个没有参数的函数,当调用该函数时,将调用self.clearTextEdit(x)
。上面的代码相当于但是对于lambda,我们不必命名为“callback”,我们只需直接传递它。在
如果您想了解更多关于lambda函数的信息,可以查看this question获取更多详细信息。在
另外,我注意到您在
clearTextEdit
中的任何地方都没有使用x
。有必要让clearTextEdit
首先接受一个参数吗?在相关问题 更多 >
编程相关推荐