输入函数不适用于简单程序
Entry function not working for simple program
我很难理解为什么这段非常简单的代码不起作用。基本上它应该打印出您键入的任何内容。它运行没有错误,但是当我在条目小部件中键入内容并按下提交按钮时,它不会打印出任何内容。我正在使用 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()
您需要做的是将命令设置为 GET
而不是 GET()
。您需要做的就是传递引用,而不是完整的函数调用,因为那样会传递 return 值:
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。回调只需要函数的引用,而不是将获得 return 值的函数调用。在这个例子中是 None 并且使按钮什么都不做。
b = Button(window, text = "Submit", command = GET())
请注意,通过执行 command=GET()
,您将调用函数 GET
,然后将其 return 值(在本例中为 None
)传递给 command
参数。
相反,您应该 command=GET
。这会将函数 GET
传递给 command
参数而不是它的 return 值。
我很难理解为什么这段非常简单的代码不起作用。基本上它应该打印出您键入的任何内容。它运行没有错误,但是当我在条目小部件中键入内容并按下提交按钮时,它不会打印出任何内容。我正在使用 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()
您需要做的是将命令设置为 GET
而不是 GET()
。您需要做的就是传递引用,而不是完整的函数调用,因为那样会传递 return 值:
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。回调只需要函数的引用,而不是将获得 return 值的函数调用。在这个例子中是 None 并且使按钮什么都不做。
b = Button(window, text = "Submit", command = GET())
请注意,通过执行 command=GET()
,您将调用函数 GET
,然后将其 return 值(在本例中为 None
)传递给 command
参数。
相反,您应该 command=GET
。这会将函数 GET
传递给 command
参数而不是它的 return 值。