В 2010 году Стефано Палаццо задал связанный вопрос: «Поместить произвольный gtk.Widget в appindicator.Indicator , и аналогичный вопрос был задан в StackOverflow» . В обоих случаях все согласны с тем, что показатели приложений в Ubuntu ограничены. Как сказал Майкл Экстранд:
Поддержка меню Application Indicator основана на меню D-Bus, которые ограничены в том, что они поддерживают - они поддерживают только базовые функции меню, а не более экзотические вещи, такие как произвольные виджеты.
Однако это противоречит тому, что мы видим в индикаторе Bluetooth сегодня, в 2016 году: он использует тумблеры.
То же самое можно наблюдать с индикатором Ubuntu One от 13.04:
Так что, очевидно, есть способ. Я изучил исходный код индикатора bluetooth, но он написан на Vala. Я, однако, работаю в основном на python, и изучение Vala только для того, чтобы переписать все мои уже существующие индикаторы, - это слишком много работы.
Итак, суть вопроса: как с помощью Python можно использовать Gtk.Widgets или, как минимум, тумблер, как в индикаторе Bluetooth, с помощью Python?
ПРИМЕЧАНИЕ : я готов назначить награду за этот вопрос, чтобы вознаградить за ответ, который послужит рабочим примером на python . Другие языки не принимаются.
test = Gtk.CheckMenuItem("Monkey")
работает добавление кнопки, но должно быть больше. Несмотря на то , что один работает, это один должен работать, но это не так : Gtk.CheckMenuItemToggled("Monkey")
. Я почти уверен, что это может сработать. См .: developer.gnome.org/gtk3/stable/GtkCheckMenuItem.html
Gtk.ImageMenuItem
не рекомендуется и не рекомендуется использовать btw: developer.gnome.org/gtkmm/stable/deprecated.html