[precedente] Posta - Copertina - Indice [successivo]

Articolo


Tcl/tk

Il toolkit tk è un'estensione del tcl, il quale è un linguaggio script simile al perl. Con il tk si possono creare con estrema facilità applicazioni per l'ambiente grafico X Windows System. In questo articolo descriverò soltanto alcuni comandi fondamentali, e le idee generali in modo da poter iniziare; una trattazione completa sarebbe molto dispersiva e lunga. La shell del tk si chiama wish (windowing shell), basta aprire un xterm ed eseguire il comando wish. Vi ritroverete con un prompt %, dal quale potete dare tutti i comandi tcl e tk. Iniziamo con qualche esempio. Dopo aver avviato wish date i seguenti comandi:


%label .msg -text "Ciao Mondo!"
.msg
%button .bye -text "Ciao" -command {exit}
.bye
%pack .msg .bye

Vi ritroverete una finestra simile:


Vediamo adesso più in dettaglio gli altri 13 comandi del tk:


Comando Descrizione
button Crea un pulsante
canvas Crea uno sfondo su cui potete visualizzare testo, figure ecc
checkbutton Crea un pulsante alla quale è associata una variabile Tcl
entry Crea un testo di una sola riga
frame Crea una cornice in cui inserire altri oggetti
label Crea una etichetta
listbox Crea una casella di riepilogo in cui si può fra scorrere il testo
menu Crea un menu
menubutton Crea un pulsante il quale se viene cliccato mostra il menu associato
message Crea un messaggio, il quale può essere composto da righe multiple
radiobutton Crae un pulsante il quale è assocciata una variabile tcl
scale Crea una scala mediante la quale si può modificare il valore della variabile associata
scrollbar Crea una barra di scorrimento
text Crea un area in cui si può scrivere e modificare un testo
toplevel Crea una finestra che è figlia del sistema X

Per visualizzare gli strumenti creati (button ecc.) si utilizza il comando pack. Come avete notato il nome di ogni strumento creato inizia con un punto. Il tk definisce la finestra principale con " . ", tutti gli strumenti che si creano sono figli di questa, quindi in questo modo si definisce una gerarchia. Infatti possiamo anche definire le dimensioni della finestra principale con il comando:

wm geometry . 100x60

Per capire meglio la gerarchia , di seguito è riportato un esempio che crea un menu:


frame .menubar
pack .menubar -side top -fill x
menubutton .menubar.file -text File -menu .menubar.file.m
menu .menubar.file.m
.menubar.file.m add command -label "Quit" -command "exit"
pack .menubar.file

La posizione dello strumento viene specificata nel comando pack ad esempio:


button .b -text "esci"
button .b1 -text "entra"
pack .b .b1 -side left

Un generico programma che ha un interfaccia grafica utente, le diverse azioni del programma vengono avviate da eventi (clic del mouse, tastiera). Nel primo esempio abbiamo utilizzato l'opzione -command del comando button per gestire il clic sul pulsante. Il modo più generico per gestire gli eventi è il comando bind, il quale ha la seguente sintassi: bind NomeStrumento <Evento> <TlcCommand> Esempio:


button .b -text "Esci"
bind .b <Enter" {puts stdout "Sto sul pulsante"}
pack .b

L'evento <Enter> viene generato quando il mouse entra nel pulsante, quindi ogni volta che posizionerete il mouse sul pulsante verrà scritto "Sto sul pulsante". Gli eventi che invece provengono dalla tastiera sono due: <KeyPress> ed <KeyRelease> , per il mouse <ButtonPress-n> e <ButtonRelease-n> dove n è il numero del pulsante del mouse.

Maggiori informazioni ed esempi possono essere trovati nel pacchetto stesso di tcl/tk.

di Gerardo Di Iorio


[precedente] Posta - Copertina - Indice [successivo]