Posta - Copertina - Indice |
Articolo
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.
Posta - Copertina - Indice |