在PyGTK应用程序中的Appindicator最佳实践

我在我的PyGTK应用程序中添加appindicator时遇到了问题。当我将this放在我的init.py文件的gtk.main()之前时,它可以正常工作,但是当我将它放在我的主窗口finish_initializing()方法中时,它就不会显示出来。有什么想法为什么会这样吗?
如果你看一下quickly template,他们建议将它放在indicator.py中。我不知道那个文件应该是什么样子的,以及为什么它只在__init__.py中起作用?
有人能给我指点一个现有的应用程序,这样我就可以看到代码示例了。我对添加appindicator的最佳实践很感兴趣。从quickly模板中的示例看起来还可以,但是没有完成。
提前谢谢。
1个回答

我不知道它们是否是最佳实践,但我已经用Python编写了一个指示器(当不支持指示器时会回退到托盘图标)这里
这是一个非常简单的程序,它只是检查一个网站,并在有更新时改变颜色(可选择显示消息),所以我希望它足够简单,可以作为一个很好的例子。它默认使用lib-indicator,但如果没有安装或者直接使用某些库更好的话,它会回退到纯gtk或qt(如果检测到在KDE或Windows下运行,则首选使用qt)。
希望它对你有所帮助。

谢谢你的示例。你只回答了我问题的一部分,但我还是接受了。当我把https://wiki.ubuntu.com/DesktopExperienceTeam/ApplicationIndicators#Python_version放在类里面时,它为什么对我不起作用的问题很简单,就是我没有将指示器分配给我的窗口,所以它从内存中被删除了,因为没有变量持有对指示器对象的引用。再次感谢你的示例,希望其他人也会觉得有用。 - umpirsky
一个关于你的应用的子问题。我看到你有暗色主题的图标。你处理过亮色主题吗?在亮色主题下,图标会几乎看不见,对吧?你知道该如何解决这个问题吗? - umpirsky
不完全是。当然,只要可能,你应该使用主题库中的图标,以避免那种问题。但我不知道如何在所有可能的情况下解决它(不同的主题、桌面环境或操作系统)。我知道一些使用这个程序的用户会更改图标文件以更好地适应其他图标(他们是Windows用户)。所以至少,请将图标保存在易于更改的文件中(不要使用资源文件等)。 - Javier Rivera
谢谢。但是我怎么知道目标机器上有哪些股票图标可用?看起来应该发一个新的问题 :) - umpirsky
很不幸的是,这对我来说并没有太大帮助,因为它是用一种非英语(我想是西班牙语)写的。不过还是给你点赞吧 :) - Seth
是的,评论是用西班牙语写的,但代码是用Python编写的 ;)。 - Javier Rivera
是的,但是如果我要理解这段代码,我必须能够理解整个内容...就是这样。 - Seth