我很难理解为什么这段非常简单的代码无法正常工作。基本上它应该打印你输入的任何东西。它运行没有错误,但是当我在条目小部件中键入内容并按下提交按钮时,它不会打印任何内容。我使用的是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()
答案 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
参数而不是其返回值。