输入功能不适用于简单程序

时间:2016-09-10 14:53:32

标签: python-3.x tkinter tkinter-entry

我很难理解为什么这段非常简单的代码无法正常工作。基本上它应该打印你输入的任何东西。它运行没有错误,但是当我在条目小部件中键入内容并按下提交按钮时,它不会打印任何内容。我使用的是Python 3.xx.

from tkinter import *

window = Tk()

def GET():
    typed = e.get()
    print(typed)

e = Entry(window)
e.pack()
b = Button(window, text = "Submit", command = GET())
b.pack()
window.mainloop()

2 个答案:

答案 0 :(得分:0)

您需要做的是将命令设置为GET而不是GET()。你需要做的就是传递是引用,而不是完整的函数调用,因为那会传递返回值:

from tkinter import *

window = Tk()

def GET():
    typed = e.get()
    print(typed)

e = Entry(window)
e.pack()
b = Button(window, text = "Submit", command = GET) # GET not GET()
b.pack()
window.mainloop()

现在,它将相应地执行GET。回调只需要函数的引用,而不是函数调用,它将获得返回值。在这种情况下,这是“无”,并且按钮不执行任何操作。

答案 1 :(得分:0)

b = Button(window, text = "Submit", command = GET())

请注意,通过执行command=GET(),您调用函数GET,然后将其返回值(在这种情况下为None)传递给command参数。

相反,你应该做command=GET。这会将函数GET传递给command参数而不是其返回值。