2011-08-22 90 views

回答

4

最佳答案給的是從官方文檔:

在X窗口系統,窗口管理器必須由freedesktop.org支持無論是 系統托盤協議(使用現代桌面 環境窗口管理器如GNOME> = 2,KDE> = 3和XFCE> = 4全部都是這樣)或GNOME 1.2和KDE 1和2中使用的舊方法。如果不存在,則 圖標將顯示爲頂級窗口用戶的桌面。

因爲不是所有的窗口管理器具有系統托盤,但也不能保證 是wxTaskBarIcon將正常運行X Window系統下等 應用程序應該使用它只是作爲他們的 用戶界面的一個可選組件。應該要求用戶明確啓用Unix上的任務欄圖標 ,它不應默認爲開啓。

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

所以這是關係到你的窗口管理器,而不是編程wxWidgets的。 wxTaskbarIcon在wxMSW下是唯一可靠的,不知道mac。 最好是避免它,如果你想真正的XPlatform應用程序。

6

對於Ubuntu Unity桌面環境(即Ubuntu 11.04或11.10),您需要將應用程序「白名單」。

從命令行使用'gsettings'應用程序有多種不同的方法。

我不得不這樣做,讓Skype等程序再次顯示在系統托盤中,而不僅僅是我自己的使用wxPython的自定義應用程序。

+3

對於13.04 [白名單已過時](http://www.webupd8.org/2013/02/unity-notification-area -systray.html)。現在的解決方案是什麼? – fatuhoku

+0

我已經從這篇文章中刪除了一個鏈接,因爲它需要登錄(據推測它本來不是)。 – halfer

0

如果您正在製作新的應用程序,請考慮使用更新的libappindicator庫 - 它是Ubuntu的繼任者,它至少應與GNOME 2.x兼容。 (我不知道GNOME 3或KDE是否支持在任何地方顯示libappindicator通知。)