Tk - Panoramica dei widget
Il componente di base di un'applicazione basata su Tk è chiamato widget. Un componente è talvolta chiamato anche una finestra, poiché, in Tk, "finestra" e "widget" sono spesso usati in modo intercambiabile. Tk è un pacchetto che fornisce un ricco set di componenti grafici per la creazione di applicazioni grafiche con Tcl.
Tk fornisce una gamma di widget che vanno dai widget GUI di base come pulsanti e menu ai widget per la visualizzazione dei dati. I widget sono molto configurabili in quanto hanno configurazioni predefinite che li rendono facili da usare.
Le applicazioni Tk seguono una gerarchia di widget in cui è possibile posizionare un numero qualsiasi di widget all'interno di un altro widget e questi widget all'interno di un altro widget. Il widget principale in un programma Tk è denominato widget di root e può essere creato creando una nuova istanza della classe TkRoot.
Creazione di un widget
Di seguito viene fornita la sintassi per la creazione di un widget.
type variableName arguments options
Il tipo qui si riferisce al tipo di widget come pulsante, etichetta e così via. Gli argomenti possono essere facoltativi e obbligatori in base alla sintassi individuale di ciascun widget. Le opzioni variano dalla dimensione alla formattazione di ogni componente.
Convenzione di denominazione dei widget
Widget utilizza una struttura simile alla denominazione dei pacchetti. In Tk, la finestra principale è denominata con un punto (.) E un elemento nella finestra, ad esempio button è denominato .myButton1. Il nome della variabile deve iniziare con una lettera minuscola, una cifra o un segno di punteggiatura (tranne un punto). Dopo il primo carattere, altri caratteri possono essere lettere maiuscole o minuscole, numeri o segni di punteggiatura (tranne i punti). Si consiglia di utilizzare una lettera minuscola per iniziare l'etichetta.
Convenzione sulla denominazione dei colori
I colori possono essere dichiarati usando nomi come rosso, verde e così via. Può anche utilizzare la rappresentazione esadecimale con #. Il numero di cifre esadecimali può essere 3, 6, 9 o 12.
Convenzione dimensionale
L'unità predefinita è pixel e viene utilizzata quando non specifichiamo alcuna dimensione. Le altre dimensioni sono i per pollici, m per millimetri, c per centimetri ep per punti.
Opzioni comuni
Ci sono così tante opzioni comuni disponibili per tutti i widget e sono elencate di seguito nella tabella seguente:
Sr.No. | Sintassi e descrizione |
---|---|
1 | -background color Utilizzato per impostare il colore di sfondo per il widget. |
2 | -borderwidth width Utilizzato per disegnare con il bordo negli effetti 3D. |
3 | -font fontDescriptor Utilizzato per impostare il carattere per il widget. |
4 | -foreground color Utilizzato per impostare il colore di primo piano per il widget. |
5 | -height number Utilizzato per impostare l'altezza del widget. |
6 | -highlightbackground color Utilizzato per impostare il rettangolo di colore da disegnare intorno a un widget quando il widget non ha il focus di input. |
7 | -highlightcolor color Utilizzato per impostare il rettangolo di colore da disegnare attorno a un widget quando il widget ha il focus di input. |
8 | -padx number Imposta il padx per il widget. |
9 | -pady number Imposta il pady per il widget. |
10 | -relief condition Imposta lo scarico 3D per questo widget. La condizione può essere sollevata, infossata, piatta, cresta, solida o solcata. |
11 | -text text Imposta il testo per il widget. |
12 | -textvariable varName Variabile associata al widget. Quando il testo del widget cambia, la variabile viene impostata con il testo del widget. |
13 | -width number Imposta la larghezza per il widget. |
Di seguito è mostrato un semplice esempio di opzioni.
#!/usr/bin/wish
grid [label .myLabel -background red -text "Hello World" -relief ridge -borderwidth 3]
-padx 100 -pady 100
Quando eseguiamo il programma precedente, otterremo il seguente output.
L'elenco dei widget disponibili è classificato di seguito:
Widget di base
Sr.No. | Widget e descrizione |
---|---|
1 | Label Widget per la visualizzazione di una singola riga di testo. |
2 | Button Widget cliccabile e che attiva un'azione. |
3 | Entry Widget utilizzato per accettare una singola riga di testo come input. |
4 | Message Widget per la visualizzazione di più righe di testo. |
5 | Text Widget per la visualizzazione e la modifica facoltativa di più righe di testo. |
6 | Toplevel Finestra con tutti i bordi e le decorazioni forniti dal Window manager. |
Widget di layout
Sr.No. | Widget e descrizione |
---|---|
1 | Frame Widget contenitore per contenere altri widget. |
2 | Place Widget per tenere altri widget in un luogo specifico con le coordinate della sua origine e una dimensione esatta. |
3 | Pack Widget semplice per organizzare i widget in blocchi prima di posizionarli nel widget genitore. |
4 | Grid Widget per annidare i widget che si impacchettano in direzioni diverse. |
Widget di selezione
Sr.No. | Widget e descrizione |
---|---|
1 | Radiobutton Widget che dispone di una serie di pulsanti di attivazione / disattivazione ed etichette, una delle quali può essere selezionata. |
2 | Checkbutton Widget con una serie di pulsanti ed etichette di attivazione / disattivazione, molti dei quali possono essere selezionati. |
3 | Menu Widget che funge da supporto per le voci di menu. |
4 | Listbox Widget che mostra un elenco di celle, una o più delle quali possono essere selezionate. |
Mega widget
Sr.No. | Widget e descrizione |
---|---|
1 | Dialog Widget per la visualizzazione delle finestre di dialogo. |
2 | Spinbox Widget che consente agli utenti di scegliere i numeri. |
3 | Combobox Widget che combina una voce con un elenco di scelte disponibili per l'uso. |
4 | Notebook Widget a schede che aiuta a passare da una pagina all'altra, utilizzando una scheda indice. |
5 | Progressbar Widget per fornire un feedback visivo sullo stato di avanzamento di una lunga operazione come il caricamento di file. |
6 | Treeview Widget per visualizzare e consentire la navigazione attraverso una gerarchia di elementi più sotto forma di albero. |
7 | Scrollbar Scorrimento di widget senza testo o widget di tela. |
8 | Scale Widget di scala per scegliere un valore numerico tramite i cursori. |
Altri widget
Sr.No. | Widget e descrizione |
---|---|
1 | Canvas Widget di disegno per la visualizzazione di grafici e immagini .. |
Tratteremo ciascuno di questi widget nei prossimi capitoli.