ioProgrammo N°23, Marzo 1999 ©Copyright DIEMME Editori
E' FACILE CON Tcl/Tk
In Internet si possono trovare numerose estensioni al toolkit tk. Molte di queste ampliano il kit di strumenti originale limitandosi a facilitarne l'uso. Altre ancora propongono nuovi oggetti che consentono la creazione di applicazioni molto professionali
La più completa di queste librerie è senza dubbio Incr Tcl. Può essere usata al posto degli interpreti originali tclsh e wish poiché contiene un proprio motore per l'interpretazione dei comandi di script. Infatti, dopo aver installato itcl2.2p2, disponibile presso il sito http://www.tcltk.com, troveremo nella directory /usr/local/lib/itcl le librerie dinamiche .so mentre gli interpreti verranno copiati in /usr/bin.
Questa libreria estende e migliora il set di strumenti di tk, con un kit di nuovi oggetti chiamato MegaWidget. La facilità con cui si creano combobox, listbox, canvas scrollabili e menu per la selezione di file e directory, è davvero notevole. Vediamo qualche esempio.
Alcuni combobox
combobox .cb1 -labeltext Mese: \
-editable false -items {Gennaio Febbraio Marzo \
Aprile Maggio Giygno Luglio Agosto Settembre \
Ottobre Novembre Dicembre}
# Combobox editabile
combobox .cb2 -labeltext "Operating System:" \
-items {Linux WinNT Win95 Win3.1 DOS}
# Combobox semplice
combobox .cb3 -labeltext Fonts: -labelpos nw \
-dropdown false -items [exec xlsfonts]
pack .cb1 -padx 10 -pady 10 -fill x
pack .cb2 -padx 10 -pady 10 -fill x
pack .cb3 -padx 10 -pady 10 -fill x
Una finestra per la selezione di files (figura 1)
# FileList
fileselectiondialog .fsd
.fsd activate
I professionali tabnotebook
tabnotebook .tn -width 100 -height 100
pack .tn -anchor nw -fill both \
-expand yes -side left \
-padx 10 -pady 10
# Crea due linguette sul tabnotebook,
# etichettate "Pagina Uno" e "Pagina Due"
.tn add -label "Pagina Uno"
.tn add -label "Pagina Due"
# imposta le pagine per le due linguette
set page1CS [.tn childsite 0]
set page2CS [.tn childsite "Pagina Uno"]
# Crea i pulsanti su ogni pagina del tabnotebook
button $page1CS.b -text "Uno"
pack $page1CS.b
button $page2CS.b -text "Due"
pack $page2CS.b
# Seleziona la prima linguetta
.tn select 0
Un pannello di radiobox
radiobox .rb -labeltext Fonts
.rb add times -text Times
.rb add helvetica -text Helvetica
.rb add courier -text Courier
.rb add symbol -text Symbol
.rb select courier
pack .rb -padx 10 -pady 10 -fill both -expand yes
Un pannellino per cambiare i valori di una variabile
# SpinInt
spinint .temp -labelpos w \
-labeltext "Temperatura:" \
-fixed 5 -width 5 -range {0 100} \
-step 2 -wrap yes -orient horizontal
pack .temp -padx 10 -pady 10
Un'altra libreria non meno importante di Incr Tcl e che ha riscosso un discreto successo, è Tix4.1.0. La si può trovare all'indirizzo http://www.xpi.com/tix/
Sostanzialmente ripropone gli stessi strumenti di MegaWidget, magari con una veste grafica più accattivante che si fa particolarmente apprezzare soprattutto nelle finestre di selezione file in stile Windows95.
Per concludere e per venire incontro alle necessità di coloro i quali dovranno cimentarsi con grafici e formule, ricordiamo che in Rete è disponibile BLT 2.3. Si tratta di un' altra estensione al toolkit tk che permette la creazione di istogrammi, diagrammi a dispersione e tutto ciò che serve per rappresentare graficamente i risultati di analisi statistiche avanzate: provatela.
TEORIA E TECNICA
SpecTcl 1.1
Programmando con tcl/tk, soprattutto nel caso in cui di debbano scrivere programmi dotati di una interfaccia grafica sofisticata, si sente la mancanza di un ambiente di programmazione. Sun ha contribuito moltissimo al miglioramento del lavoro del povero programmatore con SpecTcl 1.1.
Si tratta di un ottimo programma che consente la creazione di tutti i componenti grafici dello script. La grossa mole di lavoro che di deve sempre portare a termine con ripetuti comandi di creazione e posizionamento di nuovi widget, viene magicamente eliminata a son di clic di mouse.
Non è necessario scrive nessuna riga di codice. Fa tutto SpecTcl permettendo al programmatore di concentrarsi sulle funzioni associate ad ogni singolo strumento.
Veramente un bel programma. Una sorta di IDE (Integrated Development Environment) assolutamente da provare, disponibile presso il sito della Sun http://sunscript.sun.com/spectcl.
TEORIA E TECNICA
OpenGL e Tcl/Tk
Per i fanatici del 3D e del renderig, è finalmente disponibile Togl 1.4, una libreria di strumenti tk che permette l'uso delle funzioni di OpenGL. Per provarla è sufficiente avere installato nel proprio pc la libreria MESA (l'alternativa freeware di OpenGL).
In sostanza per creare animazioni ed effetti grafici si dovrà usare Togl insieme al C. Il primo è necessario per creare la finestra di visualizzazione, mentre al C (per ovvi motivi di velocità) verranno demandate tutte le operazioni di traslazione, rotazione e rendering degli oggetti da rappresentare. E' infatti noto che tali operazioni richiedono un uso massiccio di matrici ed impegnativi calcoli in virgola mobile. Purtroppo tcl è piuttosto debole su tali fronti per cui meglio ricorrere al linguaggio C ben più potente.
Per informazioni approdare su http://www.ssec.wisc.edu/~brianp/Togl.html
BIBLIOGRAFIA
On-line
Sun Microsystems
Tutte le versioni di tcl/tk, il plugin, l'ambiente di sviluppo più tantissime altre informazioni utili
http://sunscript.sun.com
TCL/TK Information
Tutti i link di tutte le risorse per tcl/tk disponibili in Rete
http://www.tcltk.com
Libri
Titolo: Tcl and the Tk Toolkit
Autore: John Ousterhout
Editore: Addison-Wesley
Titolo: Practical Programming in Tcl and Tk
Autore: Brent Welch
Editore: Prentice Hall
Data creazione HTML: Marzo 1999
Autore: Francesco Munaretto
E-mail: NoSpam@thank.you