如何在Tkinter中检索Entry小部件的值?

时间:2012-11-13 04:49:57

标签: python user-interface tkinter

当我点击提交按钮时,我使用以下代码尝试获取要打印的输入/输入框的内容,但是,似乎没有任何事情发生。

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()

有谁可以指出我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

ValekHalfHeart的评论是正确的。

执行command=submit_answer(entryWidget.get()))时,它会执行submit(entryWidget.get())一次,然后使用该函数的结果(可能是None)作为点击事件。这不是你想要的。

当您将其包裹在lambda中时,每次单击时都会执行该功能。要使其正常工作,您应该command=lambda:submit_answer(entryWidget.get())