У меня есть OptionMenu, как указано ниже, с командой, связанной с ним, так что каждый раз, когда я выбираю одну опцию, вызывается функция «Menu_func»:
Var = StringVar(Hst)
List_Var = [ 'a','b','c']
Var.set(List_Var[0])
Menu_Var = OptionMenu(Hst, Var, *List_Var,command = lambda x: Menu_func())
Menu_Var.grid(row=3,column=7,columnspan=2)
Функция, которая изменяет список опций в OptionMenu:
def Change_list():
Var2 = Var2.get()
Var.set('')
Menu_Var['menu'].delete(0, 'end')
List_1 = [ 'a','b','c']
List_2 = [ 'x','y','z']
if Var2 == 0:
List = List_1
for choice in List:
Menu_Var['menu'].add_command(label=choice, command=tk._setit(Var, choice))
Var.set(List[0])
if Var2 == 1:
List = List_2
for choice in List:
Menu_Var['menu'].add_command(label=choice, command=tk._setit(Var, choice))
Var.set(List[0])
Проблема в том, что когда я вызываю «Change_list», мой виджет OptionMenu теряет свою функцию «Menu_func». Есть ли способ повторно добавить эту команду при изменении списка параметров?