Ubuntu 11.04上的wx.TaskBarIcon

Ubuntu 11.04下,Unity中没有托盘。

我怎样才能使图标出现在Unity的某个地方? wx.TaskBarIcon没有出现在任何地方。 谢谢

最好的答案是从官方文档:

在X Window系统下,窗口管理器必须支持Freedesktop.org的系统托盘协议(现代桌面环境使用的WM,例如GNOME> = 2,KDE> = 3,XFCE> = 4)在GNOME 1.2和KDE 1和2中。如果没有,该图标将显示为用户桌面上的顶层窗口。

因为并不是所有的窗口管理器都有系统托盘,所以不能保证wxTaskBarIcon在X Window系统下能够正常工作,所以应用程序只能将它用作其用户界面的一个可选组件。 应该要求用户明确地启用Unix上的任务栏图标,它不应该默认打开。

http://docs.wxwidgets.org/stable/wx_wxtaskbaricon.html

所以这与你的windowmanager有关,而不是对wxWidgets进行编程。 wxTaskbarIcon只在wxMSW下可靠,不知道mac。 最好是避免它,如果你想真正的XPlatform应用程序。

使用Ubuntu Unity桌面环境(例如Ubuntu 11.04或11.10),您需要“白名单”您的应用程序。

从命令行使用“gsettings”应用程序有不同的方法。

我必须这样做才能使Skype等程序再次显示在系统托盘中,而不仅仅是我自己的使用wxPython的自定义应用程序。

如果你正在创建一个新的应用程序,可以考虑使用新的libappindicator库 – 它是Ubuntu的继任者,至少应该与GNOME 2.x兼容。 (我不知道GNOME 3或KDE是否支持在任何地方显示libappindicator通知。)