如何在其他平台上实现系统托盘应用程序?

11

Windows有一个“系统托盘”,其中包含时钟和始终运行的服务,如MSN、Steam等。

我想开发一个wxPython托盘应用程序,但我想知道它在其他平台上的兼容性如何。每个平台上的托盘等效物是什么,需要多少手动工作来支持Windows、OSX和Linux(哪些shell会更友好)。

5个回答

6

3
在OS X中,你有状态菜单栏 - 最右边的项目通常与状态相关(如电池状态,WiFi连接等)。
尝试搜索NSStatusBarNSMenuExtra。将应用程序转换为具有NSStatusBar菜单且不出现在Dock中几乎是微不足道的。有tutorials around来教你如何做到这一点。

我的顾虑是 MSN 出现在 dock,并通过弹跳进行通知。我认为这可能是我应该实现自己的方式,因为它主要是一个通知服务。 - Soviut

2
对于许多Linux桌面系统(如Gnome、KDE等),实现了Freedesktop的SysTray Protocol。如果其他解决方案失败,您可以尝试使用它。

1

在Linux上,这真的取决于你有不同的编程环境,而且有些窗口管理器甚至没有托盘区域。虽然,如果你使用Gtk(wx实际上是Gtk),gtk.StatusIcon是你的朋友。

这里有一些例子(我还没有检查它们是否真正起作用,但应该能为您指明方向)。

对于wx,我在这里找到了一些示例代码。


1

使用Qt:Qt系统托盘示例

这将在Qt支持并且支持此类图标的所有平台上显示系统托盘图标。但是,当系统托盘功能不受支持时,您需要想出一种策略。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接