16.1.3 Una (molto) rapida occhiata a Tcl/Tk

La gerarchia delle classi sembra complicata, ma nella pratica attuale i programmatori delle applicazioni possono quasi sempre riferirsi alle classi che si trovano negli ultimi nodi della gerarchia.

Note:

Per fare uso di questo materiale di riferimento, alcune volte ci sar� bisogno di saper leggere brevi passaggi di Tk e di identificare le varie parti di un comando Tk. Vedere la sezione 16.1.4 per l'equivalente in Tkinter di quanto segue.

Gli script di Tk sono programmi Tcl. Come tutti i programmi Tcl, gli script di Tk sono liste di pezzi separati da spazi. Un widget Tk � formato dalla sua classe, dalle opzioni che aiutano a configurarlo e dalle azioni che gli fanno fare qualcosa di utile.

Per fare un widget in Tk, il comando � sempre nella forma:

                classCommand newPathname options

classCommand
denota quale tipo di widget costruire (un bottone, un'etichetta, un menu, ...)

newPathname
� il nome per questo widget. Tutti i nomi in Tk devono essere unici. Per aiutare a far rispettare questo, i widget in Tk sono chiamati con un pathname (NdT: percorso), proprio come i file in un file system. Il widget di livello pi� alto, root, la radice, � chiamato . (punto) ed i discendenti vengono delimitati da altri punti. Per esempio, .myApp.controlPanel.okButton pu� essere il nome di un widget.

options
configurano l'aspetto del widget e, in alcuni casi, il suo comportamento. Le opzioni sono date in forma di lista di opzioni e valori. Le opzioni sono precedute da un `-', come le opzioni delle shell Unix ed i valori sono messi tra virgolette se sono costituiti da pi� di una parola.

Per esempio:

    button     .fred     -fg red -text "hi there"
       ^         ^       \_____________________/
       |         |                  |
     Comando    nuovo           options
    di classe  widget    (-opt val -opt val ...)

Una volta creato, il pathname del widget diventa un nuovo comando. Questo nuovo comando di widget � lo strumento del programmatore per fare in modo che il nuovo widget esegua qualche azione. In C andrebbe scritto cos�: unAzione(fred, opzioni), in C++ lo si scriverebbe: fred.unAzione(opzioni), e in Tk:

    .fred someAction someOptions

Notare che il nome dell'oggetto, .fred, inizia con un punto.

Come ci si pu� aspettare, i valori accettabili per unAzione dipenderanno dalla classe del widget: .fred disable funziona se fred � un bottone (fred diventa grigiolino), ma non funziona se fred � un'etichetta (la disabilitazione di un'etichetta non � supportata in Tk).

I valori accettabili di opzioni dipendono dall'azione. Alcune azioni come disable, non richiedono argomenti, altre, come il comando delete in una casella di introduzione di testo, richieder� argomenti che specifichino quale parte di testo cancellare.

Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.