[pyar] applet para gnome o aplicación en el systray

Matias Varela matu.varela en gmail.com
Dom Sep 2 22:25:16 ART 2012


El 02/09/12 17:59, Facundo Batista escribió:
> 2012/9/2 Varela Matias <matu.varela en gmail.com>:
>
>> Estoy utilizando el ejemplo en gtk. Modifique el contructor para que utilice
>> una imagen que tenia en el proyecto y que no aparezca la ventana principal
>> (solo en el systray):
>>
>> def __init__(self):
>>          self.statusicon = gtk.StatusIcon()
>>          self.statusicon.set_from_file("../src/tux.png")
>>          self.statusicon.connect("popup-menu", self.right_click_event)
>>          self.statusicon.set_tooltip("StatusIcon Example")
>>
>>          #window = gtk.Window()
>>          #window.connect("destroy", lambda w: gtk.main_quit())
>>          #window.show_all()
>>
>> Funciono en xfce y en gnome 3 de igual manera.
> ¿Será en Unity que no funciona? ¿O al usar Gtk3?
>
> Pasame el código entero que lo pruebo (yo tengo unity2d), si querés...
>
> Slds.
>
Si, te paso el fragmento de código:

#!/usr/bin/python2
# -*- coding: utf-8 -*-
import gtk
from block_screen import *
from pid import *
import os

class StatusIcon:
     def __init__(self):
         self.statusicon = gtk.StatusIcon()
         self.statusicon.set_from_file("../src/tux.png")
         self.statusicon.connect("popup-menu", self.right_click_event)
         self.statusicon.set_tooltip("Neosa - Neosa es otro sistema de 
autenticación")

         #window = gtk.Window()
         #window.connect("destroy", lambda w: gtk.main_quit())
         #window.show_all()

     def right_click_event(self, icon, button, time):
         menu = gtk.Menu()

         about = gtk.MenuItem("Sobre...")
         salir = gtk.MenuItem("Salir")
         block = gtk.MenuItem("Bloquear")

         about.connect("activate", self.show_about_dialog)
         salir.connect("activate", gtk.main_quit)
         block.connect("activate", self.block_host)

         menu.append(block)
         menu.append(about)
         menu.append(salir)

         menu.show_all()

         menu.popup(None, None, gtk.status_icon_position_menu, button, 
time, self.statusicon)

     def show_about_dialog(self, widget):
         about_dialog = gtk.AboutDialog()

         about_dialog.set_destroy_with_parent(True)
         about_dialog.set_name("Neosa - Sistema de autenticación")
         about_dialog.set_version("1.0")
         about_dialog.set_authors(["Matías Varela","---", "Universidad 
de Mendoza", "Facultad de Ingeniería", "2012"])

         about_dialog.run()
         about_dialog.destroy()

     def block_host(self, widget):
         print "Bloqueando host"
         try:
             #Eliminamos el proceso o pid file que haya quedado de una 
ejecución anterior
             kill_process_by_pid("blockscreen")
             if(pid_save("blockscreen")):
                 #se pudo grabar correctamente el PID en el archivo lock
                 block_screen()
         except IOError:
             print "Error: no se pudo escribir el PID"

if __name__ == "__main__":
     StatusIcon()
     gtk.main()

Saludos
-- 
*Matias E. Varela*
San Rafael, Mendoza
Blog: http://matuu.com.ar
Twitter: @matuvarela <http://twitter.com/matuvarela>
Identi.ca: @matuu <http://identi.ca/matuu>
--
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20120902/e43b3300/attachment.html>


More information about the pyar mailing list