[ruby-gnome2-doc-cvs] [Hiki] create - tut-gtk-senales-mas

Zurück zum Archiv-Index

ruby-****@sourc***** ruby-****@sourc*****
2005年 3月 18日 (金) 02:20:23 JST


-------------------------
REMOTE_ADDR = 213.37.10.235
REMOTE_HOST = 
REMOTE_USER = ruby-gnome2-hiki        URL = http://ruby-gnome2.sourceforge.jp/cgi-bin/hiki/es/hiki.cgi?tut-gtk-senales-mas
-------------------------
TITLE       = tut-gtk-senales-mas
KEYWORD     = 
= M疽 sobre manejadores de eventos
{{link "tut-gtk-holamundo-detalles", nil, "tut-gtk", "tut-gtk-holamundo2"}}

Echemos otro vistazo a GLib::Instantiatable#signal_connect:

  % irb --simple-prompt
  >> require 'gtk2'
  => true
  >> b = Gtk::Button.new("hoge")
  => #<Gtk::Button:0x40a2a858 ptr=0x8237df8>
  >> b.signal_connect("clicked") { puts 1 }
  => 1
  >> b.signal_connect("clicked") { puts 2 }
  => 2
  >>

Te has fijado en el valor int devuelto?  

Es una etiqueta que identifica el bloque de respuesta. Como se muestra arriba, se pueden tener tantas respuestas por sel como se necesiten, y cada una se ellas serejecutada en el orden en que fueron definidas.

Ahora vamos a emitir manualmente una sel. El m騁odo GLib::Instantiatable#emit_signal emitirla sel que se especifica como argumento.

Aquse puede observar  que los bloques se ejecutan en el ordne el que fueron definidos:

  >> b.signal_emit("clicked")
  1 
  2
  => nil
  >>

GLib::Instantiatable#signal_handler_disconnect se usa para eliminar un manejador de seles previamente asignado, identificado por la etiqueta devuelta por GLib::Instantiatable#signal_connect:

  >> b.signal_handler_disconnect 1
  => #<Gtk::Button:0x40a2a858 ptr=0x8237df8>
  >> b.signal_emit("clicked")
  2
  => nil
  >>

Tambi駭 se puede desactivar temporalmente un bloque de cigo de respuesta con GLib::Instantiatable#signal_handler_block y GLib::Instantiatable#signal_handler_unblock:

  >> b.signal_handler_block 2
  => #<Gtk::Button:0x40a2a858 ptr=0x8237df8>
  >> b.signal_emit("clicked")
  => nil
  >> b.signal_handler_unblock 2
  => #<Gtk::Button:0x40a2a858 ptr=0x8237df8>
  >> b.signal_emit("clicked")
  2
  => nil
  >>






ruby-gnome2-cvs メーリングリストの案内
Zurück zum Archiv-Index