Подробнее о Python TKinter Dynamic OptionMenu

Я пытаюсь изменитькод здесь чтобы пользователь подтвердил позиции, выбранные изoptionmenus, Если пользователь нажимает кнопку «Отправить», должно появиться окно с запросом подтверждения. Наконец, я хочу, чтобы выбранные элементы возвращались в программу в качестве переменных, чтобы их можно было использовать в других функциях для дальнейшей обработки. Тем не менее, моя модификация не работает; он просто возвращает пустое окно. Мысли о том, что мне не хватает? Большое спасибо.

from tkinter import *
import tkinter.messagebox

class App(Frame):
    def __init__(self, master):
        Frame.__init__(self, master)
        self.dict = {'Asia': ['Japan', 'China', 'Malasia'],
                     'Europe': ['Germany', 'France', 'Switzerland'],
                     'Africa': ['Nigeria', 'Kenya', 'Ethiopia']}
        self.variable_a = StringVar(self)
        self.variable_b = StringVar(self)
        self.variable_a.trace('w', self.updateoptions)
        self.optionmenu_a = OptionMenu(self, self.variable_a, *self.dict.keys())
        self.variable_a.set('Asia')
        self.optionmenu_a.pack()
        self.optionmenu_b = OptionMenu(self, self.variable_b, ())
        self.optionmenu_b.pack()
        self.btn = Button(self, text="Submit", width=8, command=self.submit)
        self.btn.pack()
        self.pack()

    def updateoptions(self, *args):
        countries = self.dict[self.variable_a.get()]
        self.variable_b.set(countries[0])
        menu = self.optionmenu_b['menu']
        menu.delete(0, 'end')
        for country in countries:
            menu.add_command(label=country, command=lambda country=country: self.variable_b.set(country))

    def submit(self, *args):
        var1 = self.variable_a.get()
        var2 = self.variable_b.get()
        if tkinter.messagebox.askokcancel("Selection", "Confirm selection: " + var1 + ' ' + var2):
            print(var1, var2) #Or can be other function for further processing


root = Tk()
app = App(root)
app.mainloop()

Python версия 3.4.1

РЕДАКТИРОВАТЬ: теперь появляется окно с виджетами. Я пропустилself. перед кнопкой. Я все еще получаю сообщение об ошибке, которое пытаюсь разобраться: AttributeError: у объекта 'App' нет атрибута 'optionmenu_b'

Ответы на вопрос(1)

Ваш ответ на вопрос