为什么我的按钮会工作,但不是我的键绑定?

时间:2014-03-01 18:40:45

标签: python

在代码的这一部分中,我尝试将按钮的命令设置为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)

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

我做错了什么?

1 个答案:

答案 0 :(得分:2)

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

def goRun(event=None):

所以你得到错误,因为你的函数收到了一个参数,用它不知道该怎么做。随着event=None,我们说“当它出现时不要担心这个论点,它什么都没有。”

您使用Return密钥会出现此错误,因为它会提供此参数,但它会与您的Button一起使用,因为它不会发送参数。