Im Jahr 2010 stellte Stefano Palazzo eine verwandte Frage: Setzen eines beliebigen gtk.Widget in ein appindicator.Indicator und ähnliches wurde auf StackOverflow gestellt . In beiden Fällen besteht Einigkeit darüber, dass die App-Indikatoren von Ubuntu begrenzt sind. Wie Michael Ekstrand es ausdrückte:
Die Menüunterstützung von Application Indicator basiert auf D-Bus-Menüs, deren Unterstützung begrenzt ist. Sie unterstützen nur grundlegende Menüfunktionen, keine exotischen Elemente wie beliebige Widgets.
Dies widerspricht jedoch dem, was wir heute in der Bluetooth-Anzeige für 2016 sehen: Es werden Kippschalter verwendet.
Gleiches konnte mit Ubuntu One Indikator vom 13.04 beobachtet werden:
Es gibt also offensichtlich einen Weg. Ich habe Indikator-Bluetooth-Quellcode studiert, aber er ist in Vala geschrieben. Ich arbeite jedoch hauptsächlich in Python, und es ist ein bisschen zu viel Arbeit, Vala zu lernen, um alle meine bereits vorhandenen Indikatoren neu zu schreiben.
Der Kern der Frage lautet also : Wie kann man Gtk.Widgets oder zumindest einen Kippschalter wie in der Bluetooth-Anzeige mit Python verwenden?
HINWEIS : Ich bin bereit, diese Frage mit einem Kopfgeld zu belohnen, um eine Antwort zu belohnen, die ein funktionierendes Beispiel in Python liefert . Andere Sprachen werden nicht akzeptiert.
test = Gtk.CheckMenuItem("Monkey")
funktioniert das Hinzufügen eines Häkchens, aber es sollte mehr geben. Während das man arbeitet, dieser sollte funktionieren, aber nicht: Gtk.CheckMenuItemToggled("Monkey")
. Ich bin mir ziemlich sicher, dass es trotzdem funktionieren kann. Siehe: developer.gnome.org/gtk3/stable/GtkCheckMenuItem.html
Gtk.ImageMenuItem
ist veraltet und wird davon abgeraten, btw: developer.gnome.org/gtkmm/stable/deprecated.html zu verwenden