Re: Eventos señales y demás

Miuler miuler en gmail.com
Mar Dic 25 21:16:31 CET 2007


Ok, primero, no sabía que no se permitía atachados, por lo que no
profundicé más en el codigo, por eso no especifique que era gtk.
Segundo, el correo anterior preguntaba sobre como crear eventos, luego
encontré que tenía que buscar señales, no eventos, que son dos cosas
diferentes.
Tercero cross-posting?? por favor, este es un tema que de interes en
las dos, pues estoy hablando de GTK, cosa propia de gnome, en este
caso esta echo en python, pero si alguien me da una idea en C, normal,
me interesa, ya veré yo la forma de hacerlo en en el legunaje que me
convenga. El tema principal de las señales de gtk (o pygtk si hablamos
del lenguaje python).


Bueno le pego el codigo, es un ejemplo, no es mi programa, lo hice
especialmente para la lista, para que pueda ser entendido facilmente.

#####################################################
#!/usr/bin/python
# -*- encoding:utf-8 -*-

import gtk
import gobject

gobject.signal_new('sync', gtk.Window,
                   gobject.SIGNAL_RUN_LAST|gobject.SIGNAL_ACTION,
                   gobject.TYPE_NONE, ())

def emitir_signal(widget=None, b=None):
    window = widget.get_parent().get_parent()
    print '\nSeñal emitida por: %s' % window.get_title()
    window.emit('sync')

def captura_signal(a=None, b=None):
    print 'Señal capturada por: %s' % a.get_title()

## Creando los widgets 1
win1 = gtk.Window()
vbox1 = gtk.VBox()
button1 = gtk.Button('Boton 1')
## seteo de los widgets
button1.connect('clicked', emitir_signal)
vbox1.pack_start(button1)
win1.set_title('Ventana 1')
win1.set_default_size(200, 150)
win1.connect('destroy', gtk.main_quit)
win1.connect('sync', captura_signal)
win1.add(vbox1)
win1.show_all()

## Creando los widgets 2
win2 = gtk.Window()
vbox2 = gtk.VBox()
button2 = gtk.Button('Boton 2')
## seteo de los widgets
button2.connect('clicked', emitir_signal)
vbox2.pack_start(button2)
win2.set_title('Ventana 2')
win2.set_default_size(200, 150)
win2.connect('destroy', gtk.main_quit)
win2.connect('sync', captura_signal)
win2.add(vbox2)
win2.show_all()

gtk.main()
#####################################################



On Dec 25, 2007 3:43 AM, Arnau Sanchez <pyarnau en gmail.com> wrote:
> Veamos... haces referencia a un correo antiguo, pero no pones el enlace
> ni haces un resumen del mismo, así que en realidad nadie sabe a ciencia
> cierta de qué hablas (¿pyGTK?). Por otra parte, esta lista no admite
> adjuntos, así que el código que mandes debe formar parte del propio
> texto del correo. Por último, es improbable que el cross-posting te
> ayude a obtener más respuestas...
>
> http://es.wikipedia.org/wiki/Env%C3%ADo_cruzado
>
> Miuler escribió:
> > Hola amigos, bueno como dije en uno de mis correos necesitaba la forma
> > de crear eventos, bueno luego encontre que la palabra clave era
> > señales, ahora tengo un pequeño problema, y es que cuando emito una
> > señol esa señol solo funciona desde el widget instanciado, no puedo
> > hacer que se propage a los demás widgets :( , bueno ahora les adjunto
> > un ejemplo en el cual creo un par de ventanas cada cual con un boton,
> > he creado un señal 'sync', e conectado esta señal a cada ventana, así
> > que lo que yo espero es que cuando emita la señal en la consola
> > aparesca que fue capturado por ambas ventanas pero esto no sucede,
> > solo es capturada por una ventana, por la ventana desde la cual se
> > emite la señal, la señal es emitida cuando hago click sobre un boton.
> >
> > Les agradesco cualquier idea que tengan.
> >
> >
> >
> >
> >
> > ------------------------------------------------------------------------
> >
> > _______________________________________________
> > Lista de correo Python-es
> > http://listas.aditel.org/listinfo/python-es
> > FAQ: http://listas.aditel.org/faqpyes
>
> _______________________________________________
> Lista de correo Python-es
> http://listas.aditel.org/listinfo/python-es
> FAQ: http://listas.aditel.org/faqpyes
>



-- 
     _\|/_
     (O-O)
--oOO-(_)-OOo----------------------------------------
Hector Miuler Malpica Gallegos
Universidad Nacional del Callao - Peru
Escuela de Ingenieria Electronica

usuario registrado #308608
------------ próxima parte ------------
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes


Más información sobre la lista de distribución Python-es