空のgtk.MenuItemを最初に配置することで、gtk.Widgetをgtk.Menu内に配置することは、いくらか機能します。信頼できるとは思えませんが、基本的には機能します。appindicator.Indicatorでは機能しません。エントリは空のままです。たとえば、child [border_size]を32に設定しても。
動作する唯一のウィジェットはgtk.Label(そしてもちろんMenuItem、ImageMenuItemなど)です。
Meメニューにはgtk.Entryが含まれているので、これを確実に適切に行うことができるはずです。どうすればいいのですか?
以下は、私が何をしているのかを説明するためのサンプルコードです。
self.item = gtk.MenuItem()
self.item.add(gtk.Label("hello world!"))
self.menu.append(self.item)
上記のコードは機能しますが、これは機能しません。
self.item = gtk.MenuItem()
self.item.add(gtk.Entry())
self.menu.append(self.item)
self.menuがappindicator.Indicatorである場合、gtk.Menuであれば、エントリは少なくとも表示されます。
動作するコードは次のとおりです。
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()