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!!