我可以使用Pyside吗已单击。连接连接具有参数的函数

2024-10-01 04:54:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在main类中有一个函数,它不仅有self参数。在

class Ui_Form(object):
    def clearTextEdit(self, x):
            self.plainTextEdit.setPlainText(" ")
            print("Script in Textbox is Cleaned!",)

x将是我的附加参数,我希望clearTextEdit被点击调用。在

^{pr2}$

它不允许我在clicked中写x作为参数。你能帮助我吗!在


Tags: 函数inselfformui参数objectmain
1条回答
网友
1楼 · 发布于 2024-10-01 04:54:24

解决方案

这是使用lambda的完美场所:

self.pushButton_3.clicked.connect(lambda: self.clearTextEdit(x))

请记住,connect需要一个没有参数的函数,因此我们必须在另一个函数中结束函数调用。在

解释

你最初的陈述

^{pr2}$

当您调用connect时,实际上是在调用self.clearTextEdit(x),然后您得到了一个错误,因为clearTextEdit没有返回一个没有参数的函数,这正是connect想要的。在

兰姆达?在

相反,通过传递lambda: self.clearTextEdit(x),我们给connect一个没有参数的函数,当调用该函数时,将调用self.clearTextEdit(x)。上面的代码相当于

def callback():
    return self.clearTextEdit(x)
self.pushButton_3.clicked.connect(callback)

但是对于lambda,我们不必命名为“callback”,我们只需直接传递它。在

如果您想了解更多关于lambda函数的信息,可以查看this question获取更多详细信息。在


另外,我注意到您在clearTextEdit中的任何地方都没有使用x。有必要让clearTextEdit首先接受一个参数吗?在

相关问题 更多 >