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