Всплывающее меню Python3 Tkinter не закрывается автоматически при нажатии в другом месте

м работает Python 3.3.3 (и сейчас яЯ в Ubuntu, но я также работаю на Mac и Windows, которых у меня нетпока не проверено). У меня есть объект Treeview, который реагирует на щелчок правой кнопкой мыши по элементам и показывает контекстное меню в зависимости от того, что вы нажимаете ... но ямы заметили, что если вы щелкнете правой кнопкой мыши где-нибудь еще, когда исходное меню будет открыто, оно просто откроет другое.

На самом деле, нормальное нажатие неих тоже не спрятать. Даже когда я закрываю окно, меню все еще остается плавающим. Единственный способ заставить их уйти - это нажать один из вариантов.

Конечный результат таков:

Мой код для меню выглядит следующим образом:

def rightclick_listitem(self, event):
    rowitem = self.sources.identify('item', event.x, event.y)

    if rowitem == '':
        print('Right clicked an empty space.')
        return
    # user right clicked something.
    self.sources.selection_set(rowitem)
    rcmenu = Menu(self.root, tearoff=0)
    plugin_disabled=self.sources.item(rowitem, 'values')[0] == 'Disabled'
    if plugin_disabled:
        rcmenu.add_command(label='Plugin is disabled...',
                           command=self.plugin_disabled_click)
    rcmenu.add_command(label='Plugin options',state='disabled' if plugin_disabled else 'active')
    rcmenu.add_command(label='Uninstall plugin')
    rcmenu.post(event.x_root, event.y_root)

Код, который вызывает этот код, находится здесь:

    #RIGHTMOUSE is a variable that changes based on OS due to the way Mac OSX works
    #sources is the treeview object
    self.sources.bind(RIGHTMOUSE, self.rightclick_listitem)

Я гуглил вокруг, и только некоторые люди задавали тот же вопрос без ответов. Я'Я все еще немного новичок в Tkinter и Python в целом, и неничего не вижу по этому поводу. Я также связываю другие действия с деревом.

Если вам нужно больше исходного кода, мой проект здесь:https://github.com/Mgamerz/Fresh-Set-of-Images (Freshsetofimages.py)

Любая помощь приветствуется.

И плагины, необходимые, чтобы это появилось:https://github.com/Mgamerz/fsoi_plugins

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

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