指标 – 如何编写将在Ubuntu以及其他发行版中显示的状态图标?

有问题的应用程序执行某些操作(此处将音频连接到网络流)并在这些操作成功时最小化运行.因此,需要状态图标来显示连接状态(例如,CONNECTED / DISCONNECTED).只有在单击图标时,才会打开应用程序窗口以访问其他选项.

使用Python 2.6和pyGtk我通过使用gtk_status_icon方便地实现了这一点.我故意编写应用程序以在尽可能多的发行版上运行,包括各种Ubuntu版本.我只是在用户安装后才使用可能的依赖项.

但是现在我听说在将来的Ubuntu版本中将不再支持gtk_status_icon.要求开发人员使用应用程序指示器.那么最佳做法是什么来确保:

>正确显示应用程序的本地图标
>该应用程序仍将在未来的Ubuntu版本中运行并显示它的图标.
>应用程序还将运行并在未提供indicator-applet,libappindicator和python-appindicator的其他环境中显示它的图标.

如果指标小程序未运行,gtk_status_icon的应用程序指示符回退机制将不起作用.如果没有要从中导入的appindicator模块,Python解释器将无法运行.我是否需要为不同的发行版开发不同的版本,或者有更好的方法来解决这个问题.

除了Ubuntu Wiki中给出的示例之外,我在哪里可以找到有关如何使用ApplicationIndicator的文档?提供了哪些命令来检查指标applet是否正在运行,以避免为Ubuntu与非Ubuntu发行版编写不同的源代码?

解决方法:

我认为这里的需要实际上更多地确定了python-appindicator库的存在.如果它存在,它将支持您需要的所有后备案例.它将适当地处理XFCE,KDE和旧版GNOME. Good example of how to do it in this answer.

appindicator库将使用DBus检查应用程序指示器呈现过程是否可用.这将是Unity的情况,或者指示器小程序正在运行.如果可用,它将使用它,如果没有,它将回退到使用具有相同菜单的GtkStatusIcon.

不幸的是,如果你想处理库不可用的情况,我相信你必须保留两个代码路径.虽然,我们很乐意帮助其他发行版中的图书馆:)

上一篇:在从源代码编译Python之前,我应该安装哪些软件包/库?


下一篇:Development of R-CNN、Fast R-CNN、Faster R-CNN