输入函数对简单程序不起作用



我很难理解为什么这段非常简单的代码不起作用。基本上它应该打印你输入的任何东西。它运行时没有错误,但是当我在条目小部件中输入一些东西并按下提交按钮时,它没有打印出任何东西。我使用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()。您所需要做的就是传递引用,而不是完整的函数调用,因为这样就传递了返回值:

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。回调只需要函数的引用,而不需要函数调用来获得返回值。在本例中为None,使按钮不做任何事情。

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

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

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

相关内容

  • 没有找到相关文章

最新更新