通过 Dock 菜单和 GTK 退出

发布于 2024-11-06 11:35:00 字数 306 浏览 0 评论 0原文

Mac OS X 中的每个应用程序在停靠菜单和菜单栏的应用程序菜单中都有“退出”菜单项。 但此项在 GTK 应用程序中不起作用。即使在像这样简单的应用程序中 http://www.levien.com/gimp/hello.html

我尝试使用 NSApplicationDelegate applicationShouldTerminate: 手动处理退出,但在这种情况下不会调用它。

有什么办法支持通过 Dock 菜单退出吗?

Every application in Mac OS X has Quit menu item in dock menu and in Application menu at menubar.
But this item does no work in GTK applications. Even in such simple applications like this one http://www.levien.com/gimp/hello.html

I tried to handle Quit manually using NSApplicationDelegate applicationShouldTerminate:, but it is not invoked in such case.

Is there any way to support quit via Dock menu?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

独孤求败 2024-11-13 11:35:00

ige-mac-integration 为 gtk 应用程序提供 Dock、菜单和捆绑集成OSX

您可以使用 GtkOSXApplication 将 GtkMenu 集成到 OSX 全局菜单中。

查看这些函数:

  • gtk_osxapplication_set_use_quartz_accelerators()
  • gtk_osxapplication_set_menu_bar()

ige-mac-integration provides Dock, Menu and bundle integration for gtk applications in OSX

You can use GtkOSXApplication to integrate your GtkMenu into OSX global menu.

Take a look to those functions:

  • gtk_osxapplication_set_use_quartz_accelerators()
  • gtk_osxapplication_set_menu_bar()
秋风の叶未落 2024-11-13 11:35:00

上面的答案几乎是正确的,您确实想使用 GtkOSXApplication,但由于您询问的是扩展坞的退出条目,因此您希望连接到“NSApplicationBlockTermination”信号。
以下是我在 python 中使用它来捕获退出操作的方法:

macapp = gtk_osxapplication.OSXApplication()
macapp.set_dock_icon_pixbuf(some_pixbuf)
macapp.set_menu_bar(my_menubar)
macapp.connect("NSApplicationBlockTermination", your_exit_callback)

然后在完成后从 your_exit_callback 调用 gtk.main_quit() 。
注意:对于主菜单中的退出菜单项,您还需要一些更多技巧 - 此处未介绍。

The answer above is almost correct, you do want to use GtkOSXApplication, but since you are asking about the dock's quit entry you want to connect to "NSApplicationBlockTermination" the signal.
Here's how I use it in python to catch the quit action:

macapp = gtk_osxapplication.OSXApplication()
macapp.set_dock_icon_pixbuf(some_pixbuf)
macapp.set_menu_bar(my_menubar)
macapp.connect("NSApplicationBlockTermination", your_exit_callback)

Then just call gtk.main_quit() from your_exit_callback when you are done.
Note: there are some more tricks you will need for the quit menu item in the main menu - not covered here.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文