2012-11-13 34 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())

相关问题