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

时间:2009-01-07 05:55:55

标签: python cross-platform operating-system wxpython system-tray

Windows有“系统托盘”,可存放时钟和运行良好的服务,如MSN,Steam等。

我想开发一个wxPython托盘应用程序,但我想知道这将如何移植到其他平台。每个平台上的托盘等价物是多少,以及支持Windows,OSX和Linux需要多少手动工作(特别是哪些shell最友好)。

5 个答案:

答案 0 :(得分:6)

wx是一个跨平台的GUI和工具库,支持Win32,Mac OS X,GTK +,X11,Motif,WinCE等。如果您使用它的类,那么您的应用程序应该适用于所有这些平台。 对于系统托盘,请查看wxTaskBarIcon(http://docs.wxwidgets.org/stable/wx_wxtaskbaricon.html#wxtaskbaricon)。

答案 1 :(得分:3)

在OS X下,您有状态菜单栏 - 最右侧的项目通常与状态相关(例如电池状态,WiFi连接等)。

尝试搜索NSStatusBarNSMenuExtra。将应用程序转换为具有NSStatusBar菜单并且不会出现在Dock中的应用程序几乎是微不足道的。如何做tutorials around

答案 2 :(得分:2)

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

答案 3 :(得分:1)

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

Here就是一些例子(没有检查它们是否真的有用,但应该向你显示路径)。

对于wx,我找到了一些示例代码here

答案 4 :(得分:1)

使用Qt:Qt Systray Example

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