2 回答

TA贡献1784条经验 获得超2个赞
当您vars在函数中本地执行时hi,会创建一个新的 dict 对象,这与全局创建的 dict 对象不同。您可以保存对变量的引用并在函数中
使用该变量。hi
import tkinter as tk
window = tk.Tk()
variable = "enter"
vars()[variable] = tk.Entry()
vars()[variable].insert(0, "hello")
vars()[variable].pack()
d = vars()
def hi():
text = d[variable].get()
button = tk.Button(text="Click", command=hi)
button.pack()
window.mainloop()

TA贡献1843条经验 获得超7个赞
我需要按下一个按钮来获取名为“enter”的条目的内容。由于我的程序是如何工作的,这个名字,“enter”必须存储在一个变量中,
比使用更好的解决方案vars()[variable]是将小部件存储在字典中。的使用以vars()使代码更难理解为代价提供的价值很小。
import tkinter as tk
window = tk.Tk()
variable = "enter"
widgets = {}
widgets[variable] = tk.Entry()
widgets[variable].insert(0, "hello")
widgets[variable].pack()
def hi():
text = widgets[variable].get()
print(text)
button = tk.Button(text = "Click", command = hi)
button.pack()
添加回答
举报