是否可以更改和更新正在运行的指标小程序的状态图标?

我正在尝试创建一个简单的应用程序指示器,模仿gnome-panel的CPU负载小程序。

我目前通过使用新的CPU负载信息更新(覆盖)指标的状态图标并在每次更新时将状态图标重新设置为相同的图标来做到这一点(我知道这是愚蠢的,但我不知道它是否是目前可以解决否则)。

不幸的是,这不起作用,我总是看到“第一个”图标状态,例如。

指示符图标不会更新,而图标的内容会更新。

我还试图暂时将状态图标设置为其他内容,例如。

... update_icon() indicator.set_icon("indicator-messages") indicator.set_icon("indicator-cpu-load") ... 

但那也不起作用。

有任何想法吗?


更新:

确实有可能通过黑客做我想做的事情,使指标重新绘制其图标(感谢Jorge Castro和Ted Gould):

 ... update_icon() indicator.set_status(appindicator.STATUS_ATTENTION) indicator.set_status(appindicator.STATUS_ACTIVE) ... 

注意状态图标应与活动状态图标相同,否则会有一些闪烁。

这确实不是应用程序指标的预期行为:它们意味着有一个或两个图标,而不是几乎可以放在窗口小部件中的东西。

在缓存图标时似乎有些问题,因为它应该更新已更改的图标。

无论如何,你可能想要使用像’ libindicator ‘这样的东西来创建你自己的自定义指标。 面板上的应用程序指示器集合由一个指示器绘制。 在编写自定义指标时,您可以使用更多function,而不是使用应用指标的有限API,这是有限的,以确保我们不会弄得一团糟。

还要确保查看包“libindicator-tools”,其中包含一些用于测试指标的便捷实用程序。

从错误报告中我不认为这是可能的,看起来像是设计的。

我们反而希望鼓励人们开始思考像图标主题。 这样做的原因是它允许多个尺寸和面板的主题与应用程序分开。 因此,例如,应用程序可以以浅色背景为主题(因此需要黑色图标),并且面板可能具有深色背景(需要浅色图标)。 应用程序不应该知道这一点。 通过使用图标命名,这个问题可以在面板方面解决。

对于Natty循环,我们还希望提供一个便利API,以便为想要生成图标的人构建自定义图标主题。 这并不能解决所有主题问题,但它确实可以解决多种尺寸问题。

更新:要回答您的评论Ted认为这是一个错误,建议您在指标应用程序上提交一个错误,类似于“主题更新未通过指标实现”