Tkinter 变量未更新(在函数外定义)

Tkinter Variable Not Updating(Defined outside of function)

我正在处理 tkinter 中的输入框。它应该在(条目中)取一个值,一旦按下“确定”按钮,该值将被分配给一个变量。一旦 tkinter window 关闭,变量将被打印出来。这是代码:

import tkinter as tk



root = tk.Tk()
root.title("Input")
root.geometry("400x200")

a = ""

entry1 = tk.Entry(root)
entry1.pack()


def entry1Input():
    a = entry1.get()
    print(a)

okay = tk.Button(root,text = "Okay", command = entry1Input())

okay.pack()



root.mainloop()

print("A: " + a)

问题是当我关闭 window 时,它的值与我第一次定义它时的值相同。我有一段时间没有编码 python,所以这可能是一个简单的错误。你能告诉我错误是什么吗?

你有两个问题。首先,您没有在此处传递函数对象:

okay = tk.Button(root,text = "Okay", command = entry1Input())

相反,您正在调用函数。函数 returns None,这就是您发送给 command 的内容。您需要:

okay = tk.Button(root,text = "Okay", command = entry1Input)

然后,函数中的 a 是该函数的局部变量,并在函数结束时消失。您需要:

def entry1Input():
    global a

我真诚地希望您在这里不要使用 a 作为您的变量名。