有问题的应用程序执行一些操作(此处将音频连接到网络流)并在这些操作成功时最小化运行。因此需要一个状态图标来显示连接状态(例如已连接/已断开连接)。仅当单击该图标时,应用程序窗口才会打开以访问更多选项。
使用 Python 2.6 和 pyGtk 我通过使用gtk_status_icon方便地实现了这一点。我特意编写了在尽可能多的发行版上运行的应用程序,包括各种 Ubuntu 版本。只有在用户安装它们之后,我才小心使用可能的依赖项。
但是现在我听说未来的 Ubuntu 版本将不再支持 gtk_status_icon。要求开发人员改用应用程序指示器。什么是最佳实践以确保:
如果指标小程序未运行,应用程序指标回退机制到 gtk_status_icon 将不起作用。如果没有要从中导入的appindicator模块,Python 解释器将不会运行。我是否需要为不同的发行版开发不同的版本,还是有更好的方法来解决这个问题。
除了Ubuntu Wiki 中给出的示例之外,我在哪里可以找到有关如何使用 ApplicationIndicator 的文档?提供了哪些命令来检查指标小程序是否正在运行以避免为 Ubuntu 与非 Ubuntu 发行版编写不同的源代码?
我正在尝试创建一个简单的应用程序指示器来模拟 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)
注意状态图标应与活动状态图标相同,否则会有一些闪烁。