Crea  Modifica  FrontPage  Indici  Cerca  Ultime modifiche  History  RSS  Login

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 *1, GTK manda un segnale al ciclo principale (Gtk.main) quando accade un evento speciale. DopodichŔ Il ciclo principale richiamerÓ una 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 pu˛ essere 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" sarÓ preso.
end

GLib::Instantiatable#signal_connect ha bisogno di 2 cose:

  • Il nome del segnale che sarÓ preso;
  • un codice di blocco che sarÓ eseguito sulla ricezione del segnale dato.

Il codice di blocco pu˛ prendere un parametro opzionale come i seguenti:

GLib::Instantiatable#signal_connect("signal name") do |w|
    # ...
end

I widget che contengono il segnale saranno perci˛ sostituiti dal parametro w.


*1Nota 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.

Ultima modifica:2003/10/04 05:20:13
Parola chiave:
Referenze:[tut-gtk]