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

アーカイブの一覧に戻る

ruby-****@sourc***** ruby-****@sourc*****
2005年 3月 18日 (金) 02:14: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
-------------------------
TITLE       = tut-gtk-senales
KEYWORD     = 
= Mecanismo de se$B(Bles y callbacks
{{link "tut-gtk-holamundo", "tut-gtk-primeros-pasos", "tut-gtk", "tut-gtk-eventos"}}

Antes de estudiar el programa "Hola Mundo" en detalle, vamos a estudiar un poco como gestiona GTK las se$B(Bles y callbacks.

Al igual que tu sistema devuelve una se$B(Bl a los procesos al apagarse (Notese que las se$B(Bles GTK no est$BaO(B relacionadas de ninguna forma con las se$B(Bles UNIX). El toolkit GTK ha sido dise$B(Bdo para ser independiente de la plataforma en la que se ejecuta.), GTK env$ByB(B una se$B(Bl al proceso principal (Gtk.main) cuando un evento ocurre. El proceso principal puede entonces llamar a la funci$B(B apropiada asociada al componente que envila se$B(Bl.

Hasta que se recibe una se$B(Bl, el proceso principal se encuentra dormido.

Para indicar a un componente GTK que debe responder a una se$B(Bl espec$ByG(Bica, y entonces ejecutar el c$B(Bigo apropiado, necesitamos un manejador de se$B(Bles.

Esto se consigue con el m$BqU(Bodo GLib::Instantiatable#signal_connect, que es parte de la librer$ByB(B Ruby/GLib (no hay que olvidar que GTK se basa en GLib):

  GLib::Instantiatable#signal_connect("nombre de se$B(Bl") do
      # C$B(Bigo a ajecutar al capturar "nombre de se$B(Bl".
  end

GLib::Instantiatable#signal_connect necesita 2 cosas:
* el nombre de la se$B(Bl que sercapturada; 
* el bloque de c$B(Bigo que serejecutado tras recibir la se$B(Bl.

EL bloque de c$B(Bigo puede tomar un par$BaN(Betro opcional:

  GLib::Instantiatable#signal_connect("nombre de se$B(Bl") do |w|
      # ...
  end

El componente que generla se$B(Bl sersustituido en adelante por el par$BaN(Betro w.






ruby-gnome2-cvs メーリングリストの案内
アーカイブの一覧に戻る