Ruby-GNOME2 mini-howto: come fare semplici applicazioni multipiattaforma



|

Dedicato a tutti quelli che cercano un'alternativa a Visual Basic o semplicemente vogliono un modo semplice per fare applicazioni per GNU/Linux, Windows, ma non solo..

[b]Premessa[/b]

Ci sono molti modi per programmare a finestre in GNU/Linux, con molteplici linguaggi(C, C++,Python, Ruby, PHP,..) e con diverse librerie grafiche(GTK,Qt,..), in queste righe verr? trattato l'accoppiata: Ruby + GTK2 con le estensioni ruby-libglade2; questa scelta non è ovviamente vincolante, ma penso che sia un'alternativa facile e veloce per sviluppare applicazioni multipiattaforma per GNU/Linux, Windows, Freebsd,.. (soprattutto per chi proviene dall'ambiente Visual Basic). [url=images/node/4_full.png][img]images/node/4_summ.png[/img][/url]

[b]Gli ingredienti[/b]

Ruby: è un linguaggio interpretato completamente ad oggetti multipiattaforma. Riferimento [http://www.ruby-lang.org] Ruby-GNOME2: sono le estensioni di Ruby per GTK2. Riferimento [http://ruby-gnome2.sourceforge.jp/it/] GTK2: si tratta di una libreria multipiattaforma sviluppata in C. Riferimento [http://www.gtk.org] Glade2: è un costruttore di interfacce per GTK2. Non è possibile scrivere codice Ruby all'interno di Glade2. Anjuta: è un IDE che ha la colorazione della sintassi Ruby, terminale integrato e molto altro ancora.

[b]Primi passi[/b]

Per installare il tutto, non dovrebbero esserci particolari problemi, tutte le distribuzioni attuali dovrebbero avere i pacchetti per tutto. Per esempio sotto Debian unstable, basta aggiungere (forse non più necessario) il repertorio deb http://ruby.yi.org/debian/ sid ruby-gnome2 nel file /etc/apt/sources.list e poi digitare sul terminale: [code] apt-get install ruby ruby-gnome2 anjuta glade2 [/code]

[b]Iniziamo[/b]

Iniziamo a creare l'interfaccia del nostro programma con Glade2, in questa fase non viene definito il linguaggio di programmazione, ma solo come apparir? il programma; nel nostro caso: 1. Click sul tasto con la finestra. 2. Dividere la finestra cliccando il tasto con i 3 divisori orizzontali. 3. Inserire in ogni spazio un oggetto (esempio: etichetta, testo, pulsante).

Nel nostro caso gli oggetti si chiamano testo(oggetto testo), invia(pulsante), esci(pulsante), dopodichè bisogna assegnarli le azioni da compiere (segnali/eventi). Si aggiunge un segnale a un pulsante selezionandolo e andando a impostare nella paletta delle propriet? il segnale voluto, nel caso di invia, Segnale:clicked, Gestore:saluta e poi aggiungi (saluta è la funzione, ancora da definire, che verr? chiamata quando sar? cliccato).

Salvare il tutto in prova.glade e si otterr? la nostra bellissima interfaccia in xml.

Adesso è ora di aggiungere il codice Ruby, per mio gusto personale userò Anjuta, ma è ovvio che qualsiasi elaboratore di testi va bene. [code] =begin prova.rb - il mio programma di prova in Ruby/Libglade2 =end require 'libglade2' class Prova def initialize @glade = GladeXML.new("prova.glade") {|handler| method(handler)} @testo = @glade.get_widget("testo") @esci = @glade.get_widget("esci") @invia = @glade.get_widget("invia") end def saluta @testo.set_text("Ciao, "+@testo.text) @testo.set_editable(FALSE) end def esci Gtk.main_quit end end Gtk.init Prova.new Gtk.main [/code]

Come è abbastanza intuitivo notare, le prime righe inizializzano gli oggetti presenti nell'interfaccia, mentre def saluta è la funzione che viene attivata quando invia è cliccato: imposta il testo al testo corrente con Ciao davanti, poi disabilita la modifica di testo.. facile no? Salvare il listato come prova.rb

Per eseguire il tutto usare il terminale integrato in Anjuta (o uno qualsiasi) e digitare: [url=immagini/rbbr.png]rbbr[/url] [code]ruby prova.rb[/code]

[b]Ultima chicca[/b]

[url=immagini/rbbr.png]rbbr[/url] è un grazioso strumento che trovate insieme a ruby-GNOME2 che vi permette di visualizzare tutti i metodi, propriet? disponibili ;-)

Ciao a tutti e buon divertimento!!!!!!