Nel 2010 Stefano Palazzo ha posto una domanda correlata, inserendo un gtk.Widget arbitrario in un appindicator.Indicator , e uno simile è stato posto su StackOverflow . In entrambi i casi il consenso è che gli indicatori delle app di Ubuntu sono limitati. Come diceva Michael Ekstrand:
Il supporto del menu Indicatore applicazione si basa sui menu D-Bus, che sono limitati in ciò che supportano: supportano solo funzionalità di menu di base, non cose più esotiche come widget arbitrari.
Tuttavia, contraddice ciò che vediamo oggi nell'indicatore Bluetooth, nel 2016: utilizza interruttori a levetta.
Lo stesso si può osservare con l'indicatore Ubuntu One del 13.04:
Quindi ovviamente c'è un modo. Ho studiato il codice sorgente indicatore-bluetooth, ma è scritto in Vala. Tuttavia, lavoro principalmente in Python e imparare Vala solo per riscrivere tutti i miei indicatori già esistenti è un po 'troppo lavoro.
Quindi il nocciolo della domanda: come si può usare Gtk.Widgets o come minimo un interruttore a levetta proprio come nell'indicatore Bluetooth, usando Python?
NOTA : Sono disposto a dare generosità a questa domanda per premiare una risposta che fornirà un esempio funzionante in Python . Altre lingue non sono accettate
test = Gtk.CheckMenuItem("Monkey")
funziona aggiungendo un pulsante di spunta, ma dovrebbe essercene di più. Mentre quella opere, questo dovrebbe funzionare, ma non lo fa: Gtk.CheckMenuItemToggled("Monkey")
. Sono abbastanza sicuro che possa funzionare comunque. Vedi: developer.gnome.org/gtk3/stable/GtkCheckMenuItem.html
Gtk.ImageMenuItem
è deprecato e sconsigliato di usare btw: developer.gnome.org/gtkmm/stable/deprecated.html