Creando indicators en Python


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()

Califica este Artículo

Categoría: Programación.




Deja una respuesta