Ubuntu 12.10中的wxTaskBarIcon

Riv*_*ris 5 c++ wxwidgets ubuntu-12.10

我在Ubuntu 12.10下构建了wxWidgets 2.9.3(目前我必须坚持这个版本),我似乎无法使用wxTaskBarIcon类.与wxWidgets一起提供的示例正在编译并运行,但图标本身未显示在任务栏本身上.我检查了我的配置,我知道,wxWidgets库的编译是使用默认设置执行的(对于任务栏支持,这是"是").

知道如何让它工作吗?这个问题与wxWidgets和/或Ubuntu版本有关吗?

编辑:它绝对没有连接到wxWidgets版本(在wx 2.8,2.9.3,2.9.4下检查).

编辑2:如果重要:系统在VirtualBox 4.2.6上,安装了所有默认设置.我每周至少安装一次更新.

Riv*_*ris 3

在 Ubuntu 下,自 11.04 起任务栏由 Unity 管理,默认情况下不允许所有程序将图标放在那里。您必须将您的应用程序列入白名单才能使其访问任务栏。这是我最初找到答案的地方:

http://ubuntuforums.org/showthread.php?t=1737589

基本上你必须打电话:

gsettings set com.canonical.Unity.Panel systray-whitelist "['JavaEmbeddedFrame', 'Mumble', 'Wine', 'Skype', 'YOUR_APPLICATION']"
Run Code Online (Sandbox Code Playgroud)

然后注销,登录。这会将 YOUR_APPLICATION 添加到 Unity.Panel 白名单中。请记住,在这种情况下,您还必须事先列出该列表中的项目。您可以通过调用以下命令来检查白名单的外观:

gsettings get com.canonical.Unity.Panel systray-whitelist
Run Code Online (Sandbox Code Playgroud)

就我而言(因为我正在开发环境中)我只是将其设置为"['all']". 这将允许所有应用程序访问任务栏。

请记住,Ubuntu 将放弃此类支持,将来您应该使用 AppIndicator 库来实现该目标。这意味着,wxTaskBarIcon 即使使用白名单也无法工作,除非它使用 AppIndicator 库。

来源:http ://www.webupd8.org/2013/02/unity-notification-area-systray.html