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