# Tkinter

Tkinter (Tk-interface) è una libreria, facente parte della standard library di Python, utilizzata per lo sviluppo di software che necessitano di un'interfaccia grafica. La libreria è implementata come wrapper delle librerie Tcl/Tk e viene fornita completa dell'Interprete Tcl, integrato, a sua volta, nell'interprete Python.
Nonostante lo stesso creatore di Python, Guido van Rossum, abbia ammesso che librerie come le wxPython siano migliori, le Tkinter mantengono comunque un primato di leggerezza e stabilità e per questo si sono aggiudicate il loro prestigioso posto.

## Struttura

La libreria è suddivisa nei seguenti moduli:
* tkinter
* tkinter.colorchooser
* tkinter.commondialog
* tkinter.filedialog
* tkinter.simpledialog
* tkinter.font
* tkinter.messagebox
* tkinter.scrolledtext
* tkinter.dnd
* tkinter.ttk
* tkinter.tix

### tkinter

È il modulo base, fornisce un insieme di widget sotto forma di classi Python attraverso le quali è possibile costruire l'interfaccia grafica.

### tkinter.colorchooser

Contiene una classe, denominata Chooser, che funge da interfaccia al color picker nativo del sistema.

### tkinter.commondialog

Contiene la classe base, denominata Dialog, utilizzata in altri moduli.

### tkinter.filedialog

Implementa una serie di funzioni e classi per la selezione di file e cartelle sia tramite l'emulazione di finestre native del sistema che non native.

### tkinter.simpledialog

Implementa una serie di funzioni e classi per ottenere un valore tipizzato (intero, virgola mobile o stringa) in input dall'utente mediante una finestra di dialogo pop-up.

### tkinter.font

Contiene una classe, denominata Font, utilizzata per specificare la tipologia e lo stile del tipo di carattere da applicare su uno o più widget, a patto, ovviamente, che il widget supporti tale funzionalità.

### tkinter.messagebox

Implementa una serie di funzioni e classi per la generazione di avvisi o domande tramite finestre di tipo pop-up.

### tkinter.scrolledtext

Contiene una classe, denominata ScrolledText, utilizzata per permettere la visualizzazione di testi molto lunghi che, senza l'utilizzo di tale classe, non sarebbero completamente visibili.

### tkinter.dnd

È un modulo sperimentale che contiene classi e funzioni per implementare le funzionalità di drag and drop nelle applicazioni tkinter.

### tkinter.ttk

È un modulo, presente dalla versione 8.5 in poi di Tk, che effettua l'override della maggior parte dei widget presenti nel modulo base, implementando anche nuove classi come ad esempio la classe Style . Lo scopo del modulo ttk è di far ottenere un aspetto più moderno alle applicazioni create tramite tkinter.

### tkinter.tix

Questo modulo fornisce, come suggerisce il suo nome (Tk Interface Extension), un set di widget addizionali da poter utilizzare nelle applicazioni sviluppate con tkinter.

## Esempi di programmi

Questo è un semplice programma in Python 3 che crea una finestra con un'etichetta "Hello World!".
Questo è un semplice programma scritto in Python 3 con due bottoni, uno per uscire dall'applicazione e l'altro, se premuto, scrive "Ciao a tutti!".
Se si utilizza Python 2 bisogna invece scrivere
Questo è un semplice programma in Python 3 che simula il funzionamento di un token tramite la generazione pseudocasuale di un codice a 6 cifre. Dopo 30 secondi dall'avvio, la finestra si chiude automaticamente, simulando la scadenza del codice stesso.