【发布时间】:2018-06-22 23:58:59
【问题描述】:
我正在尝试开发一个 Gnome 小程序。我使用 CentOS 6.5(Gnome 面板 2.30.2)。
我试图构建一个基本的小程序,复制自:
- https://github.com/benpicco/gnome-panel-python-applet-example
- https://github.com/nickcharlton/gnome-search-applet
我做了以下事情:
创建服务器文件
-rw-r--r--. 1 myself mygroup ... /usr/lib/bonobo/servers/psleApplet.server
代码:
<oaf_info>
<oaf_server iid="OAFIID:PsleApplet_Factory" type="exe" location="/usr/local/bin/psleApplet.py">
<oaf_attribute name="repo_ids" type="stringv">
<item value="IDL:Bonobo/GenericFactory:1.0"/>
<item value="IDL:Bonobo/Unknown:1.0"/>
</oaf_attribute>
<oaf_attribute name="name" type="string" value="foo Factory"/>
<oaf_attribute name="description" type="string" value="bar (factory)"/>
</oaf_server>
<oaf_server iid="OAFIID:PsleApplet" type="factory" location="OAFIID:PsleApplet_Factory">
<oaf_attribute name="repo_ids" type="stringv">
<item value="IDL:GNOME/Vertigo/PanelAppletShell:1.0"/>
<item value="IDL:Bonobo/Controle:1.0"/>
<item value="IDL:Bonobo/Unknown:1.0"/>
</oaf_attribute>
<oaf_attribute name="name" type="string" value="foo"/>
<oaf_attribute name="description" type="string" value="bar"/>
<oaf_attribute name="panel:category" type="string" value="Utility"/>
<oaf_attribute name="panel:icon" type="string" value="gnome-applets.png"/>
</oaf_server>
</oaf_info>
创建一个基本的 Python 文件
-rwxr-xr-x. 1 myself mygroup ... /usr/local/bin/psleApplet.py
代码:
#!/usr/bin/env python
import sys
import gtk
import pygtk
import gnomeapplet
pygtk.require('2.0')
def applet_factory(applet, iid):
label = gtk.Label('It works!')
applet.add(label)
applet.show_all()
print 'Factory started.'
return True
if _name__ == '__main__':
print "Sarting factory."
gnomeapplet.bonnobo_factory('OAFIID:PsleApplet_Factory', gnomeapplet.Applet.__gtype__,'Sample Applet', '0.1', applet_factory)
其他信息
这是我从控制台运行 Python 文件时的输出:
>/usr/local/bin/psleApplet.py
Starting factory.
请注意,“工厂已启动”消息不会出现。
引用的图标确实存在:
-rw-r--r--. 1 root root ... /usr/share/pixmaps/gnome-applets.png
所以一切似乎都很好,但是右键单击面板>添加到面板后,我无法在列表中找到我的小程序
我做错了什么?
【问题讨论】: