【问题标题】:wxTaskBarIcon in Ubuntu 12.10Ubuntu 12.10 中的 wxTaskBarIcon
【发布时间】:2013-01-09 08:52:18
【问题描述】:

我在 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 上,使用所有默认设置安装。我每周至少安装一次更新。

【问题讨论】:

标签: c++ wxwidgets ubuntu-12.10


【解决方案1】:

在 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']"

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

gsettings get com.canonical.Unity.Panel systray-whitelist

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

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

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

【讨论】:

  • wxWidgets 落后有什么原因吗?当然wxTaskBarIcon 应该得到一个Appindicator 实现
  • 我只能猜测这与事实有关,即 wxWidgets 是面向 GTK 的,而不是 Ubuntu。将wxTaskBarIcon 调整到 Ubuntu 可能很困难,尤其是当AppIndicator 的可能性比 gtk 图标(显示的事件等)少得多时。同样根据我的经验,AppIndicator 不太可靠,因为我在那里发现了很多错误和奇怪的行为。
猜你喜欢
  • 1970-01-01
  • 2013-12-12
  • 1970-01-01
  • 1970-01-01
  • 2014-07-19
  • 2013-03-18
  • 2013-11-14
  • 2013-01-13
  • 2013-11-16
相关资源
最近更新 更多