2015-11-25 171 views
0

我试图做一个tkinter程序,一旦答案已被输入到输入框提交被按下,然后激活提交代码。提交代码应该接收入口小部件中的信息,然后检查用户是否实际提交了答案。Tkinter:TypeError:Submit()只需要1个位置参数(0给出)

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

我已经看过其他的解决方案,他们似乎并不适用于这种情况

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

您还没有经过entryWidget在回调提交。 – stark

回答

1

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

没有,没有理由对提交函数接收输入构件作为第一个参数。绑定到command的函数将不会收到任何参数。如果你想Submit用一个参数来调用,您需要的话自己,包裹在一个匿名的lambda函数:

submitButton = Button(root, text= "Submit Answer", command =lambda: Submit(entryWidget)) 
相关问题