« Tk: comando pack • Appunti di Tcl/Tk • Tk: comando wm »
Tk permette di specificare o interrogare i parametri e le preferenze associate a ciascun widget (colori, dimensioni, font, ecc.). Tutte queste opzioni vengono mantenute da Tk in un database, interrogabile e modificabile sia tramite procedure C che Tcl. Le opzioni standard di configurazione supportate dai widget sono spiegate nella manpage options(n), in modo da non dover ripetere la spiegazione nelle manpage relative a ciascun widget. Non tutte le opzioni generiche sono supportate da tutti i widget. Ogni widget supporta un sottoinsieme di opzioni standard che viene indicato nella sezione STANDARD OPTIONS della sua manpage.
Qui elenco le opzioni generali più usate. Per un elenco esaustivo consultate options(n):
Specifica l'effetto 3-D da applicare al widget. Accetta i seguenti valori (qui esemplificati con un button o una label):
button | label |
---|---|
|
|
label .l1 -text "utopia 18 punti" -font "utopia 18" label .l2 -text "helvetica 24 pixel italic" -font "Helvetica -24 italic" pack .l1 .l2
Specifica una immagine da visualizzare nel widget, che deve essere stata precedentemente creata tramite il comando image create. Di solito, se viene specificata questa opzione vengono ignorate altre opzioni che specificano una bitmap o un valore testuale da visualizzare all'interno del widget e verrà visualizzata solo l'immagine specificata con -image; se però il valore di questa opzione viene reimpostato in una stringa vuota, verrà visualizzata la bitmap o il testo come stabilito dalle opzioni -text e -bitmap.
Per esempio ho creato questa immagine di un bottone smussato usando gli script di gimp(1); sempre tramite gimp(1) ho fuso i layer e l'ho convertita in formato indicizzato con 255 colori; infine l'ho salvata in formato GIF, in un file che ho chiamato gimpbutton.gif:
Ora con questo codice posso creare un bottone che abbia la forma di questa immagine:
image create photo butimg -file gimpbutton.gif button .but -borderwidth 0 -highlightthickness 0 -image butimg
Si può semplificare il codice lasciando che sia Tk ad assegnare un nome unico del tipo imagex (x è un intero) all'immagine creata e innestando i comandi button(n) e image(n):
button .but -borderwidth 0 -highlightthickness 0 -image [image create photo -file gimpbutton.gif]
Le bitmap sono immagini monocromatiche molto semplici, in cui ogni pixel può essere di soli due colori (quello di primo piano o di sfondo), oppure niente (vale a dire che il pixel è trasparente). Vedere bitmap(n) per maggiori informazioni. Il comando bitmap(1) incluso nel sistema grafico X permette di creare i file di bitmap nel formato X11 (di fatto si tratta di un formato testuale portabile: è una definizione in linguaggio C di un array di caratteri statico!). Trovate alcune bitmap in /usr/X11R6/include/X11/bitmaps (per lo meno in FreeBSD).
Specifica un valore non negativo che indica quanto spazio extra richiedere per il widget nella direzione X. I valori vanno specificati come numero a virgola mobile, seguito da uno dei caratteri seguenti che indica l'unità di misura:
abbreviazione | unità di misura |
---|---|
<nessuno> | pixel |
c | centimetri |
i | pollici (inches) |
m | millimetri |
p | punti (1/72 di pollice) |
Quando il geometry manager calcola quando spazio in larghezza deve essere assegnato al widget, aggiunge questa quantità alla larghezza che sarebbe necessaria in mancanza dell'opzione -padx (che viene determinata in base alla larghezza di quello che è visualizzato nel widget) e, ammesso che il geometry manager sia in grado di soddisfare la richiesta, il widget avrà dello spazio extra a sinistra e/o a destra del suo contenuto. Nella maggior parte dei widget questa opzione ha effetto solo se c'è del testo contenuto e viene di solito ignorata per le bitmap o le immagini.