Tkinter: TypeError: Submit() takes exactly 1 positional argument (0 given)

Tkinter: TypeError: Submit() takes exactly 1 positional argument (0 given)

我正在尝试制作一个 tkinter 程序,一旦将答案输入输入框,按下提交按钮,然后激活提交代码。提交代码应接收条目小部件中的信息,然后检查用户是否实际提交了答案。

如果这是真的,那么如果用户输入的答案与我之前指定的答案相同,则会提示“不正确”或“正确”。

我看过其他解决方案,但它们似乎不适用于这种情况

    entryWidget = Entry(root)
    entryWidget["width"] = 50
    entryWidget.pack()
    entryWidget.pack()
    submitButton = Button(root, text= "Submit Answer", command =Submit)
    submitButton.pack()



def Submit(entryWidget):
     """ Display the Entry text value. """

     userAnswer= entryWidget.get()

     if userAnswer.strip() == "":
         tkinter.messagebox.showerror("Tkinter Entry Widget", "Please enter a number.")

     if int(correctAnswer) != userAnswer.strip():
         tkinter.messagebox.showinfo("Answer", "INCORRECT!")
     else:
         tkinter.messagebox.showinfo("Answer", "CORRECT!")

The submit code should receive the information in the entry widget...

不,提交函数没有理由接收条目小部件作为其第一个参数。绑定到 command 的函数将不会接收任何参数。如果你想用一个参数调用 Submit,你需要自己做,包裹在一个匿名的 lambda 函数中:

submitButton = Button(root, text= "Submit Answer", command =lambda: Submit(entryWidget))