ruby-****@sourc*****
ruby-****@sourc*****
2003年 10月 4日 (土) 05:20:13 JST
------------------------- REMOTE_ADDR = 62.10.89.134 REMOTE_HOST = URL = http://ruby-gnome2.sourceforge.jp/it?tut-gtk-signals ------------------------- = Funzionamento dei segnali e callback prima di vedere il programma "Ciao mondo!" in dettaglio, noi dovremo studiare un po' come GTK gestisce i segnali e i callback. Nello stesso modo in cui il tuo sistema consegna un segnale come lo spegnimento ((-Nota che i segnali GTK non sono considerati in nessun modo come i segnali UNIX. Lo strumento GTK stato concepito per essere indipendente dal sistema sottostante. -)), GTK manda un segnale al ciclo principale (Gtk.main) quando accade un evento speciale. DopodichIl ciclo principale richiameruna funzione appropriata del widget. Fintanto che un segnale non ricevuto, il ciclo principale rimane in attesa. Per dire a un widget GTK che deve prendere un segnale specifico e poi eseguire il codice appropriato, dobbiamo impostare un gestore di segnali. Questo puessere fatto con il metodo GLib::Instantiatable#signal_connect method, che parte della libreria Ruby/GLib. (Non dimenticare che GTK costruito su GLib): GLib::Instantiatable#signal_connect("signal name") do # Codice da eseguire quando "signal name" sarpreso. end GLib::Instantiatable#signal_connect ha bisogno di 2 cose: * Il nome del segnale che sarpreso; * un codice di blocco che sareseguito sulla ricezione del segnale dato. Il codice di blocco puprendere un parametro opzionale come i seguenti: GLib::Instantiatable#signal_connect("signal name") do |w| # ... end I widget che contengono il segnale saranno percisostituiti dal parametro w.