相关疑难解决方法(0)

将任意 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)
Run Code Online (Sandbox Code Playgroud)

上面的代码有效,但这不起作用:

    self.item = gtk.MenuItem()
    self.item.add(gtk.Entry())
    self.menu.append(self.item)
Run Code Online (Sandbox Code Playgroud)

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()
Run Code Online (Sandbox Code Playgroud)

indicator python programming gtk pygtk

19
推荐指数
1
解决办法
3408
查看次数

标签 统计

gtk ×1

indicator ×1

programming ×1

pygtk ×1

python ×1