Помещение произвольного gtk. Виджет в appindicator. Индикатор

Помещение любого gtk. Виджет в gtk. Работы меню, несколько, путем помещения пустого gtk. MenuItem в сначала. Это, кажется, не надежно - но это в основном работает. С appindicator. Индикатор, это не работает. Запись просто остается пустой. Даже если Вы устанавливаете ребенка [border_size] на 32, например.

Единственный виджет, который работы являются gtk. Маркировка (плюс MenuItem, ImageMenuItem и так далее, конечно).

Теперь Я Меню имеет gtk. Запись в нем, таким образом, должно, конечно, быть возможно сделать это Правильно. Как я делаю это?

Вот некоторый пример кода для объяснения, о чем я иду:

    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. Индикатор, если это был gtk. Меню, Запись была бы, по крайней мере, отображена.

Вот некоторый рабочий код:

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()
18
задан 6 December 2010 в 07:45

2 ответа

Поддержка меню Application Indicator основана на меню D-Bus, которые ограничены в том, что они поддерживают - они только поддерживают функциональность основного меню, не более экзотические вещи, такие как произвольные виджеты.

Один значительный контрольно-пропускной пункт им, когда-либо поддержка таких вещей является тем, что меню индикатора приложения представляется другим процессом, процессом индикатора приложения, таким образом, Ваша программа не имеет доступа для прямого рисования чего-либо на нем. Преодоление этого потребовало бы или поддержки чего-то как X-Embed в меню D-Bus или разрешения всех GTK работать по D-шине.

7
ответ дан 23 November 2019 в 02:14

Звуковой индикатор в Ubuntu имеет ползунки для объема, и я задался вопросом, как это возможно. После того, как взгляд в коде, которым это кажется, существует GtkMenus, который может быть переполнен через dbus между тем: https://developer.ubuntu.com/api/devel/ubuntu-12.04/c/dbusmenugtk/index.html

Но я не знаю, как использовать их. Требуемый для записи звукового индикатора, где я могу управлять объемом на приложение точно так же, как pavucontrol может сделать это.

2
ответ дан 23 November 2019 в 02:14

Другие вопросы по тегам:

Похожие вопросы: