#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