【问题标题】:Why doesn't my Gnome applet appear in the list?为什么我的 Gnome 小程序没有出现在列表中?
【发布时间】:2018-06-22 23:58:59
【问题描述】:

我正在尝试开发一个 Gnome 小程序。我使用 CentOS 6.5(Gnome 面板 2.30.2)。

我试图构建一个基本的小程序,复制自:

我做了以下事情:

创建服务器文件

-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

所以一切似乎都很好,但是右键单击面板>添加到面板后,我无法在列表中找到我的小程序

我做错了什么?

【问题讨论】:

    标签: applet pygtk gnome


    【解决方案1】:

    这里的问题可能是包 - 它不再在 pypy 上,并且 support appears to have been dropped。很可能该软件包的大部分内容都散布着损坏的遗留代码。

    Python 对 Gnome 小程序的支持一直是有限的 - 在 2011 年之后,您不会找到很多关于 Python + gnome 的帖子。也许更好的主意是通过 ctypes 创建与面板小程序标题 (@987654323) 的绑定@)。这将确保您获得有效的绑定(至少对于 Gnome 2.30.2)并且还可以让您更好地了解 gnome 小程序本身。

    编辑:绑定确实已经存在。看看PyGObject.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-05
      • 2015-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多