Enlaces de Python AppIndicator-> ¿cómo verificar si el menú está abierto?
pygtk ubuntu-unity (2)
Aquí hay un ejemplo mínimo de un AppIndicator:
#!/usr/bin/python
import gobject
import gtk
import appindicator
if __name__ == "__main__":
ind = appindicator.Indicator("example-simple-client", "gtk-execute", appindicator.CATEGORY_APPLICATION_STATUS)
ind.set_status (appindicator.STATUS_ACTIVE)
menu = gtk.Menu()
menu_items = gtk.MenuItem(''Quit'')
menu.append(menu_items)
menu_items.connect("activate", gtk.main_quit)
menu_items.show()
ind.set_menu(menu)
gtk.main()
Desafortunadamente la documentación sobre esto es muy incompleta. Lo que busco es una forma de verificar si el usuario abrió el menú de AppIndicator (por ejemplo, se hizo clic en el icono del indicador). Entonces, ¿hay una señal que se emite cuando se abre el menú?
Hay un error archivado al respecto en Launchpad https://bugs.launchpad.net/screenlets/+bug/522152
Observe que la señal de "activación" está disponible para los submenús de AppIndicator.
Parece que la respuesta no es desafortunadamente.
print gobject.signal_list_names(ind)
(''new-icon'', ''new-attention-icon'', ''new-status'', ''new-label'', ''x-ayatana-new-label'', ''connection-changed'', ''new-icon-theme-path'')
Los probé todos y ninguno de ellos parece activarse cuando se hace clic en el indicador. Por lo que vale la pena la unidad, los desarrolladores parecen querer que todos los indicadores se comporten de manera uniforme, por lo que es bastante posible que se limite deliberadamente.