2015-11-25 79 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)) 
相關問題