2 回答

TA貢獻1784條經(jīng)驗 獲得超2個贊
當您vars在函數(shù)中本地執(zhí)行時hi,會創(chuàng)建一個新的 dict 對象,這與全局創(chuàng)建的 dict 對象不同。您可以保存對變量的引用并在函數(shù)中
使用該變量。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條經(jīng)驗 獲得超7個贊
我需要按下一個按鈕來獲取名為“enter”的條目的內(nèi)容。由于我的程序是如何工作的,這個名字,“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()
添加回答
舉報