0
我在基于选项菜单中的选择更新标签时遇到问题。下面是我的代码工作的例子:Tkinter:在OptionMenu选项更改时更改标签
import Tkinter as tk
from Tkinter import *
secs = ['Subject', 'Difficulty', 'Percent', 'Grade', 'Pass']
master = Tk()
v = StringVar(master)
v.set(secs[0])
def on_option_change(event):
#lab2.destroy()
lab2 = tk.Label(master, text=v.get())
lab2.grid(row=2, column=1)
w = OptionMenu(master, v, *secs, command=on_option_change)
w.grid(row=1, column=0)
lab1 = tk.Label(master, text='Current value:')
lab1.grid(row=2, column=0, sticky=E)
lab2 = tk.Label(master, text=secs[0])
lab2.grid(row=2, column=1, sticky=W)
mainloop()
的问题是,选择一个新的选项时,旧的标签仍然落后新的。然而,当我添加代码来摧毁旧的标签,我可以理解,得到如下错误:
UnboundLocalError: local variable 'lab2' referenced before assignment
在一个容易解决任何建议将最赞赏。一般来说,我对Tkinter和GUI的创建颇为新手。我一直在寻找几个小时的答案,没有多大用处。
太棒了!谢谢!如果这很简单,你能解释一下为什么这样有效吗? – davo1979