W 2010 roku Stefano Palazzo zadał powiązane pytanie: Umieszczanie arbitralnego gtk.Widget w appindicator.Indicator , i podobne pytanie zadawano na StackOverflow . W obu przypadkach konsensus jest taki, że wskaźniki aplikacji Ubuntu są ograniczone. Jak ujął to Michael Ekstrand:
Obsługa menu wskaźnika aplikacji opiera się na menu D-Bus, które są ograniczone w tym, co obsługują - obsługują tylko podstawowe funkcje menu, a nie bardziej egzotyczne rzeczy, takie jak arbitralne widżety.
Jest to jednak sprzeczne z tym, co widzimy dzisiaj we wskaźniku Bluetooth, w 2016 r .: używa przełączników przełączających.
To samo można zaobserwować w przypadku wskaźnika Ubuntu One z 13.04:
Więc oczywiście jest sposób. Studiowałem kod źródłowy wskaźnik-bluetooth, ale jest napisany w Vala. Ja jednak pracuję przede wszystkim w Pythonie, a nauka Vali, aby przepisać wszystkie moje już istniejące wskaźniki, jest trochę za dużo pracy.
Tak więc sedno pytania: w jaki sposób można używać Gtk.Widgets, a przynajmniej przełącznika tak jak na wskaźniku Bluetooth, używając Pythona?
UWAGA : Jestem gotów wystawić nagrodę za to pytanie, aby nagrodzić odpowiedź, która zapewni działający przykład w pythonie . Inne języki nie są akceptowane.
test = Gtk.CheckMenuItem("Monkey")
działa dodawanie przycisku wyboru, ale powinno być więcej. Mimo, że ktoś pracuje, ten powinien działać, ale nie: Gtk.CheckMenuItemToggled("Monkey")
. Jestem prawie pewien, że i tak może działać. Patrz: developer.gnome.org/gtk3/stable/GtkCheckMenuItem.html
Gtk.ImageMenuItem
jest przestarzałe i odradzane używanie btw: developer.gnome.org/gtkmm/stable/deprecated.html