Gnomeapplet - видеть только белую точку, где должна быть запись и кнопка - PullRequest
1 голос
/ 29 июля 2011

Я написал gnomeapplet для gnome-panel и соответствующий файл сервера.Кажется, все работает нормально, когда я использую «режим отладки», но когда я пытаюсь загрузить апплет с панели, он показывает только маленькую белую точку.Может кто-нибудь помочь мне найти проблему?

мой код:

#!/usr/bin/env python

import gnomeapplet
import gobject

import sys
import gtk



class Priberam(gnomeapplet.Applet):

    def __init__(self, applet, iid):


    hbox = gtk.HBox(False, 0)
    image = gtk.Image()     
    pixbuf = gtk.gdk.pixbuf_new_from_file('1.png')
    pixbuf = gtk.gdk.Pixbuf.add_alpha(pixbuf,255,255,255 ,255)
    size = applet.get_size()-6
    pixbuf = pixbuf.scale_simple(size,size,gtk.gdk.INTERP_BILINEAR)

    image.set_from_pixbuf(pixbuf)

    button_search = gtk.Button()
    button_search.add(image)

    entry = gtk.Entry()


    hbox.pack_start(button_search, False, False, 0)
    hbox.pack_end(entry, False, False, 0)

    applet.add(hbox)
    applet.show_all()


gobject.type_register(Priberam)

def priberam_factory(applet,iid):
    Priberam(applet,iid)
    return True



if len(sys.argv) > 1 and sys.argv[1] == '-d': # debugging
    mainWindow = gtk.Window()
    mainWindow.set_title('Applet window')
    mainWindow.connect("destroy", lambda w: gtk.main_quit())
    applet = gnomeapplet.Applet()
    priberam_factory(applet, None)
    applet.reparent(mainWindow)
    mainWindow.show_all()
    gtk.main()
    sys.exit()

if __name__ == '__main__':
    gnomeapplet.bonobo_factory('OAFIID:GNOME_Priberam_Factory', gnomeapplet.Applet.__gtype__, 'Priberam Applet', '0.1', priberam_factory)

Заранее спасибо

1 Ответ

1 голос
/ 01 августа 2011

Решено ... Решение было настолько простым ... Мне просто нужно изменить путь к файлу изображения на полный путь ... вместо pixbuf = gtk.gdk.pixbuf_new_from_file('1.png') Я должен использовать, например: pixbuf = gtk.gdk.pixbuf_new_from_file('/home/username/applet/1.png')

Лучше: pixbuf = gtk.gdk.pixbuf_new_from_file(os.path.join(os.path.dirname(__file__), '1.png')), не забудьте import os

...