Navegando por el blog de jono bacon me encontre con un código de ejemplo y lo he adaptado. Es un ejemplo muy sencillo de como crear un indicador, y asociarle un menu. En el ejemplo creo 5 items en el menu. Uno para lanzar una aplicación externa (gedit en este caso), para salir, y otros tres que son un ejemplo de como crear un item de menu de tipo radio, check o imágen. No me explayo, porque en el código ya he puesto comentarios. Espero que os sirva para crear vuestras propias aplicaciones.
#! /usr/bin/python #:::::::::::::::::::::::::::::::: # Ejemplo de uso de AppIndicator #:::::::::::::::::::::::::::::::: import gobject import gtk import appindicator import os # Acciones que se ejecutan cuando pulse algun elemento del menu def action1_clicked(widget,data=None): print "Lanzando gedit..." os.system("gedit &") def action2_clicked(widget,data=None): print "Salir.." exit(); def quit(widget, data=None): gtk.main_quit() # Codigo principal if __name__ == "__main__": # Creo el indicador ind = appindicator.Indicator ("example-simple-client", "indicator-messages", appindicator.CATEGORY_APPLICATION_STATUS) ind.set_status (appindicator.STATUS_ACTIVE) ind.set_attention_icon ("indicator-messages-new") # Icono para el indicador ind.set_icon("distributor-logo") # creo un menu menu = gtk.Menu() # Empiezo a crear elementos para el menu # primer elemento (sera de tipo normal) # texto item = "Lanzar GEDIT..." # creo elemento de menu menu_item = gtk.MenuItem(item) # al pulsarlo le asocio que ejecute "action1" menu_item.connect("activate", action1_clicked) # Lo asocio al menu menu.append(menu_item) # Parecido para el item 2 del menu item2 = "Salir" menu_item2 = gtk.MenuItem(item2) # al pulsarlo le asocio que ejecute la "action2" menu_item2.connect("activate", action2_clicked) menu.append(menu_item2) # Aqui creo el item 3 pero sera de tipo check check = gtk.CheckMenuItem("Check Menu Item") menu.append(check) # Aqui creo el item 4 pero sera de tipo radio radio = gtk.RadioMenuItem(None, "Radio Menu Item") menu.append(radio) # Aqui creo el item 5 pero sera una imagen image = gtk.ImageMenuItem(gtk.STOCK_QUIT) image.connect("activate", quit) menu.append(image) # hago visibles los elementos del menu menu_item.show() menu_item2.show(); check.show(); radio.show(); image.show(); # Asocio el menu al indicador ind.set_menu(menu) # Ejecuto el codigo principal gtk.main()
muchísimas gracias. justo lo estaba buscando.
cambiando un poco de tema; hay alguna forma de poner widgets que no sean del tipo MenuItem en un menú? (ej. el control deslizable del indicador de volumen)
Genial, voy por los míos 😉
Buenisimo , jue de una vez por todas me pongo aprender a programar en python.
¿Se podrá hacer uno para jdownloader?
Esta bastante interesante.
¿Solo funciona en Gnome o es posible usarlo en otros paneles como el LXPanel?
Sirve para KDE tb, por lo que anduve leyendo en web de jono bacon.
Me gustaría crear varios a mi modo (ver las carpetas una especie de explorador)
me acabas de dar una idea para crear un indicador de Lammp!!! gracias!!!!
Pero que interesante esta esto, ya tengo muchas ideas en la cabeza para implementarlo
Hola estoy empezando con python, y que mejor manera e¡de hacer un applet, lo llevo tiempo pensando, uno que me sirva para empezar/parar demonios/servicios, como apache, impresoras, bluetooth, virtualbox, etc
me he puesto directamente con tu ejemplo y al intentar ejecutar me sale este error
Traceback (most recent call last):
File «applet.py», line 9, in
import appindicator
ImportError: No module named appindicator
he intentado buscar «appindicator» con un updatedb y locate, whereis y aptitude, pero no encuentro nada. Pos si acaso tuviera que guardar el archivo en una carpeta en concreto o instalar alguna dependencia.
Cualquier ayuda sería de muchisima utilidad.
Gracias por adelantado, buen blog!!