[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