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