我无法根据选项菜单中的选项更新标签。下面是我的代码的一个工作示例:
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创建的新手。我一直在寻找几个小时的答案,但收效甚微。
答案 0 :(得分:0)
通过在第一行的on_option_change函数内写入“global lab2”,使lab2变量成为全局变量。