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
作为您的变量名。
我正在处理 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
作为您的变量名。