2012-11-13 55 views
0

我使用下面的代碼嘗試獲取輸入/輸入框的內容,當我點擊提交按鈕時,但是,似乎沒有任何事情發生。如何檢索Tkinter中Entry項的值?

def submit_answer(response): 
    print(response) 


def get_answer(): 
    root = Tkinter.Tk() 

    contentFrame = Tkinter.Frame(root) 

    entryWidget = Tkinter.Entry(contentFrame) 
    entryWidget['width'] = 50 
    entryWidget.pack() 

    contentFrame.pack() 

    button = Tkinter.Button(root, text='Submit', command=submit_answer(entryWidget.get())) 
    button.pack() 

    root.mainloop() 

任何人都可以指出我在做什麼錯在這裏?

+2

嗯idk,如果這有幫助,但我有tkinter事件類似的問題,我解決了通過將「命令」變量放入lambda語句中:button = Tkinter .Button(root,text ='Submit',command = ** lambda:** submit_answer(entryWidget.get())) – ApproachingDarknessFish

回答

1

ValekHalfHeart的評論是正確的。

當你做command=submit_answer(entryWidget.get()))它執行submit(entryWidget.get())一次,然後使用該函數的結果(可能是None)作爲點擊事件。這不是你想要的。

當您將其包裝在lambda中時,每次單擊時都會執行該功能。對於它的工作,你應該有command=lambda:submit_answer(entryWidget.get())

相關問題