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

hto*_*que 8 indicator programming application-development

我正在尝试创建一个简单的应用程序指示器来模拟 gnome 面板的 CPU 负载小程序。

我目前通过使用新的 CPU 负载信息更新(覆盖)指示器的状态图标并在每次更新时将状态图标重新设置为相同的图标来执行此操作(我知道这很愚蠢,但我不知道它是否是目前可能以其他方式解决)。

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

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

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

...
update_icon()
indicator.set_icon("indicator-messages")
indicator.set_icon("indicator-cpu-load")
...
Run Code Online (Sandbox Code Playgroud)

但这也不起作用。

有任何想法吗?


更新:

确实可以使用 hack 来做我想做的事情,使指标重新绘制其图标(感谢 Jorge Castro 和 Ted Gould):

...
update_icon()
indicator.set_status(appindicator.STATUS_ATTENTION)
indicator.set_status(appindicator.STATUS_ACTIVE)
...
Run Code Online (Sandbox Code Playgroud)

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

Sen*_*ede 4

这确实不是应用程序指示器的预期行为:它们应该具有一两个图标,而不是您几乎可以放入小部件中的东西。

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

不管怎样,您可能想使用“ libindicator ”之类的东西来创建您自己的自定义指标。面板上的应用程序指示器集合由一个指示器绘制。与使用应用程序指标的有限 API 相比,编写自定义指标时您可以使用更多的功能,而应用程序指标的 API 是故意限制的,以确保我们不会陷入混乱。

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