Я пытаюсь отследить выбор виджета OptionMenu, чтобы разные варианты запускали разные функции. Тем не менее, я продолжаю сталкиваться с ошибкой ниже:
Exception in Tkinter callback
Traceback (most recent call last):
File "-", line 1705, in __call__
return self.func(*args)
File "-", line 149, in callback
self.bookingCanvas(optVar)
File "-", line 152, in bookingCanvas
perfDate = optVar.get()
AttributeError: 'str' object has no attribute 'get'
Вот соответствующий код:
optVar = StringVar(self.root)
optVar.trace('r', callback=self.callback)
optVar.set("06/10/20") # default value
optMenu_Label = Label(self.root, text='Select a performance date:',bg='gray15', fg='yellow', relief=GROOVE)
optMenu_Label.pack(side=TOP, anchor=NW, padx=15, pady=15)
optMenu = OptionMenu(self.root, optVar, '04/10/20','5/10/20','6/10/20')
optMenu.pack(side=TOP,anchor=NW, padx=35, pady=3)
Обратный вызов .trace () выше:
def callback(self, optVar, *args):
print("SOMETHING HAS CHANGED")
self.bookingCanvas(optVar)
Область ошибок (я предполагаю):
def bookingCanvas(self, optVar):
perfDate = optVar.get()
print("This is a Date >>>",perfDate)
print("did we get here?")