将任何gtk.Widget放入gtk.Menu中,通过首先放置一个空的gtk.MenuItem可以实现某种程度的工作。但它似乎不是可靠的-但基本上可以工作。使用appindicator.Indicator时,它不起作用。条目仍然保持为空。即使您将child [border_size]设置为32,例如。
唯一可以工作的小部件是gtk.Label(当然还包括MenuItem,ImageMenuItem等)。
现在Me菜单中有一个gtk.Entry,因此肯定可以正确地执行此操作。我怎么做?
这是一些示例代码,以解释我的意思:
以上代码有效,然而这个并不行:
唯一可以工作的小部件是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,则至少会显示 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)
indicator = AppIndicator()
gtk.main()