Как прослушать действие кнопки приложения Tkinter «О программе» на MAC

#python-3.x #macos #tkinter #dialog #action

#python-3.x #macos #tkinter #диалог #Экшен

Вопрос:

Я разрабатываю настольное приложение с помощью библиотеки Python tkinter. Я не писал код для строки меню в приложении по умолчанию, которое оно создает на Mac. Я хочу прослушать действие, я могу прослушать кнопку выхода

 app.createcommand("::tk::mac::Quit", on_closing) 
  

Я не знаю, как прослушать действие кнопки «О программе». Я пробовал с
::tk:: mac::About и ::tk ::mac::standardAboutPanel. Можете ли вы предложить, что использовать для прослушивания кнопки «О программе» на Mac.

Примечание: Это меню по умолчанию, созданное mac. Итак, нам просто нужно прослушать действие, вот и все. Если мы прослушаем, мы сможем вызвать метод для about.введите описание изображения здесь

Ответ №1:

Вы не можете явно прослушивать активацию меню «О программе» по умолчанию. Однако вы можете создать свое собственное меню «О программе».

Есть два важных шага. Во-первых, внутреннее имя меню должно быть «about», и это меню необходимо добавить в меню, прежде чем добавлять меню в корневое окно.

Если вы будете следовать этим двум правилам, все созданные вами пункты меню будут помещены перед пунктами меню по умолчанию. Вот простой пример:

 import tkinter as tk

root = tk.Tk()

def show_about():
    top = tk.Toplevel()
    label = tk.Label(top, text="This is my custom 'about' window")
    button = tk.Button(top, text="Ok", command=top.destroy)
    button.pack(side="bottom", pady=20)
    label.pack(padx=20, pady=20)

menubar = tk.Menu(root)
apple_menu = tk.Menu(menubar, name="apple")
menubar.add_cascade(menu=apple_menu)
apple_menu.add_command(label="About mediavalet", command=show_about)
root.configure(menu=menubar)

root.mainloop()
  

скриншот меню

Хорошим справочником для меню, зависящих от платформы, является руководство по меню на tkdocs.com