У меня проблемы с выяснением, как закрыть меню окна python tkinter при нажатии на корень меню, т. Е. «Файл».
Я надеялся, что при создании экземпляра меню была доступна только опция команды, но похоже, что это не так.Также я знаю, что есть метод unpost, который я могу использовать, чтобы избавиться от меню, но я не знаю, как вызвать его при щелчке в корневом меню.
Редактировать:
Поскольку БрайанЯ сказал, что мои меню должны работать так же, как и любые другие меню в моей операционной системе. Я решил собрать пример того, как я делаю меню.Возможно, я делаю что-то здесь не так, но на Ubuntu в любой другой программе, если я нажму на корень меню, оно снова закроется.В этой программе он не закрывается при нажатии на корень, только при нажатии в другом месте на экране меню закрывается.
import tkinter as tk
import tkinter.messagebox
class App(tk.Tk):
def __init__(self):
tk.Tk.__init__(self)
self.title("App Here")
self.window_menu = tk.Menu(self)
self.filemenu = tk.Menu(self.window_menu, tearoff=0)
self.build_window_menu()
self.config(menu=self.window_menu)
def build_window_menu(self):
self.window_menu.add_cascade(label="File", menu=self.filemenu)
self.filemenu.add_command(label='alert', command=self._handle_menualert)
def _handle_menualert(self):
tk.messagebox.showwarning(
"Menu Stuff",
"I am menu alert!"
)
if __name__ == '__main__':
app = App()
app.mainloop()