在代码的这一部分中,我尝试将按钮的命令设置为goRun,还将Return键绑定到goRun

def goRun():
    Run.runData(ENTRY=symbolEntry.get(), GREATER=greaterEntry.get(), BETWEEN=betweenEntry.get(), LESSER=lesserEntry.get())
    #^ "Run" is a seperate class.

button = Button(app, text="Go Data", command=goRun, fg="blue")
button.pack(side="top", pady=2, padx=10)

app.bind('<Return>', goRun)


当我运行该应用程序并按Return键时,出现此错误:

TypeError: goRun() takes no arguments (1 given)


但是当我按下按钮时,它会运行命令并正常运行。

我究竟做错了什么?

最佳答案

假设您使用的GUI库是tkinter,这是因为当按键激活回调时,会传递一个名为event的参数。尝试修改函数定义,如下所示:

def goRun(event=None):


因此,当函数收到一个不知道如何执行操作的参数时,您会收到错误消息。对于event=None,我们说的是:“不必担心出现这种论点时,就什么都没有了。”

使用Return键会收到此错误,因为它提供了此参数,但由于它不发送参数,因此可以与Button一起使用。

10-07 17:11