Tkinter:TypeError:Submit()只取1个位置参数(给定0)

时间:2015-11-25 17:31:55

标签: python tkinter messagebox strip function

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

如果这是真的,那么如果用户输入的答案与我之前规定的答案相同,则会提示INCORRECT或CORRECT。

我已经查看了其他解决方案,它们似乎不适用于这种情况

    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!")

1 个答案:

答案 0 :(得分:1)

  

提交代码应该在条目小部件中接收信息......

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

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