如何通过Tkinter获取输入值并更新Python字典内容?
Tkinter输入框内容无法存入字典的解决方法
问题原因
- 语法错误:原代码中
e - Entry(master, textvariable=v)的减号是笔误,应改为等号=,否则会引发变量未定义的错误。 - 逻辑错误:
s = v.get()在程序启动时就执行了,此时输入框还没有任何输入,所以s是空字符串。后续用户输入内容后,s的值不会自动更新,因为get()方法仅执行了一次。
修正方案一:界面关闭后获取输入值
from tkinter import Tk, StringVar, Button, mainloop, Entry master = Tk() master.geometry("320x270") v = StringVar() e = Entry(master, textvariable=v) # 修正赋值符号 e.pack() exit_button = Button(master, text="submit", command=master.destroy) exit_button.pack(pady=20) mainloop() # 在界面关闭后,获取输入框的最终内容 s = v.get() a = {"aaa": s} print(a)
修正方案二:按钮回调时获取输入值
这种方式更符合交互逻辑,点击提交按钮时立刻获取输入内容并存入字典:
from tkinter import Tk, StringVar, Button, mainloop, Entry # 初始化字典 a = {"aaa": ""} def submit(): global a # 获取当前输入框的内容并更新字典 a["aaa"] = v.get() master.destroy() master = Tk() master.geometry("320x270") v = StringVar() e = Entry(master, textvariable=v) e.pack() # 绑定回调函数到提交按钮 exit_button = Button(master, text="submit", command=submit) exit_button.pack(pady=20) mainloop() print(a)
内容的提问来源于stack exchange,提问作者Zalman
相关产品推荐
相关产品推荐

