Umieszczanie dowolnego gtk.Widget wewnątrz gtk.Menu działa nieco przez umieszczenie najpierw pustego gtk.MenuItem. Nie wydaje się być wiarygodny - ale w zasadzie działa. Z appindicator.Indicator nie działa. Wpis pozostaje pusty. Nawet jeśli na przykład ustawisz wartość child [border_size] na 32.
Jedynym działającym widżetem jest gtk.Label (plus MenuItem, ImageMenuItem itd.).
Teraz menu Me ma gtk. Wpisz, więc na pewno trzeba to zrobić poprawnie. Jak mam to zrobić?
Oto przykładowy kod wyjaśniający, o czym mówię:
self.item = gtk.MenuItem()
self.item.add(gtk.Label("hello world!"))
self.menu.append(self.item)
Powyższy kod działa, ale to nie działa:
self.item = gtk.MenuItem()
self.item.add(gtk.Entry())
self.menu.append(self.item)
Gdzie self.menu jest aplikatorem. Wskaźnik, gdyby był gtk.Menu, Wpis byłby przynajmniej wyświetlany.
Oto działający kod:
import gtk
import appindicator
class AppIndicator (object):
def __init__(self):
self.ind = appindicator.Indicator("hello world client",
"distributor-logo", appindicator.CATEGORY_APPLICATION_STATUS)
self.ind.set_status (appindicator.STATUS_ACTIVE)
self.menu = gtk.Menu()
item = gtk.MenuItem()
item.add(gtk.Label("hello world"))
# item.add(gtk.Entry())
self.menu.append(item)
self.menu.show_all()
self.ind.set_menu(self.menu)
indicator = AppIndicator()
gtk.main()