« Tk: alcuni widget: comando text
• Appunti di Tcl/Tk • Tk: alcuni widget: comando entry »
Tk
comando scrollbar
Per il nostro editor di testi, dovremo aggiungere due scrollbar
ai lati del controllo text(n) per facilitare lo scorrimento in
verticale e in orizzontale del testo. Per creare un widget
scrollbar(n) useremo il comando:
scrollbar pathName ?options?
Come tutti gli utenti sanno, uno scrollbar consiste di due
freccie poste all'estremità di una barra di scorrimento
centrale (slider). Non ha molto senso usarlo da solo, ma serve per
aggiustare la vista in un altro widget associato, tipicamente
text(n) e listbox(n), cliccando sulla scrollbar o trascinandola col
mouse. La posizione la dimensione dello slider indica infatti
graficamente quale porzione del documento è visibile nel
widget associato.
Come esempio aggiungiamo una scrollbar verticale a tpad:
text .text -yscrollcommand {.vscroll set}
scrollbar .vscroll -command {.text yview}
Quando l'utente manipola la scrollbar, la scrollbar deve
notificare al widget controllato che deve cambiare la vista e lo fa
eseguendo un comando Tcl di questo specifico widget, il cui
prefisso è specificato tramite l'opzione -command. Viceversa
il widget controllato deve notificare ogni cambiamento di vista
alla scrollbar in modo che questa possa aggiornarsi e lo fa tramite
l'opzione standard
-yscrollcommand.
L'opzione specifica più importante del widget
scrollbar(n) è quindi -command:
- -command
- Indica il prefisso di un comando Tcl da invocare per cambiare
la vista nel widget associato con la scrollbar. Il comando viene
invocato ogni volta che l'utente richiede un cambiamento di vista
manipolando la scrollbar. Il comando è generalmente del tipo
.t xview o .t yview, dove .t è il nome del widget da
scrollare e xview o yview sono sottocomandi di widget che
richiedono rispettivamente lo scorrimento orizzontale e verticale.
Tutti i widget scrollabili hanno questi due sottocomandi. Le
opzioni che questi richiedono vengono aggiunte automaticamente dal
widget scrollbar(n), in modo che il comando che viene
effettivamente eseguito, indicando con prefix il valore di command,
risulta essere uno dei seguenti:
- prefix moveto fraction
- Aggiusta la vista del widget in modo che il punto di vista
definito dalla frazione fraction (compresa tra 0 e 1) appaia
all'inizio del widget. La frazione 0 si riferisce all'inizio del
documento. 1.0 si riferisce alla fine del documento, 0.333 si
riferisce ad un punto che si trova ad un terzo del documento e
così via.
- prefix scroll number units
- Il widget deve aggiustare la sua vista del numero di
unità number specificato. La definizione di unità
dipende dal tipo di widget, ad es. per un widget di tipo text(n)
possono essere caratteri o linee. Se number è 1, indica che
occorre far scorrere verso l'alto o verso sinistra di una
unità di contenuto, se è -1 invece indica di far
scorrere di un'unità di contenuto verso il basso o verso
destra.
- prefix scroll number pages
- Il widget deve aggiustare la sua vista del numero di pagine
number specificato. La definizione di pagina dipende dal widget; di
solito è un po' di meno rispetto a tutto quello che
può essere visualizzato in una volta, in modo che ci sia una
leggera sovrapposizione tra viste di pagina consecutive, per
facilitare la lettura. number può essere 1, che significa di
avanzare di una pagina, o -1, che indica di visualizzare la pagina
precedente.
Consultate la sezione BINDINGS della manpage scrollbar(n) se
volete sapere quale di questi comandi verrà invocato a
seconda di come la scrollbar viene manipolata.
Il sottocomando più importante di un comando widget di
tipo scrollbar è set:
- pathName set first last
- Questo comando viene invocato dal widget associato alla
scrollbar per dire alla scrollbar qual'è la vista corrente
nel widget. first e last sono frazioni comprese tra 0 e 1 e
descrivono l'intervallo del documento che è visibile nel
widget associato. Per esempio i valori 0.2 per first e 0.4 per last
indicano che nel widget associato è visibile la porzione del
documento che va dalla posizione corrispondente al 20% fino a
quella corrispondente al 40%.
« Tk: alcuni widget: comando text
• Appunti di Tcl/Tk • Tk: alcuni widget: comando entry »