2
将任意gtk.Widget放入appindicator.Indicator
将任何gtk.Widget放在gtk.Menu内,某种程度上是通过首先将一个空的gtk.MenuItem放入而起作用的。它似乎并不可靠-但它基本上可以工作。使用appindicator.Indicator无效。条目保持为空。例如,即使将child [border_size]设置为32。 唯一有效的小部件是gtk.Label(当然还有MenuItem,ImageMenuItem等)。 现在,我菜单中有一个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,则将至少显示Entry。 这是一些工作代码: 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) …