Python è un linguaggio di programmazione versatile che può essere utilizzato per implementare diversi tipi di applicazioni. Dispone di molti tipi di moduli per creare applicazioni basate sulla GUI (Graphical User Interface). Python tkinter è uno di questi. Qualsiasi applicazione desktop può essere implementata facilmente utilizzando il modulo tkinter. Sarà meglio se hai una conoscenza di base della programmazione Python per apprendere gli usi del modulo tkinter Python. In questo tutorial vengono mostrati diversi usi del modulo Python tkinter per creare le applicazioni GUI.
Installa il modulo Tkinter
Il modulo tkinter non è installato su Python per impostazione predefinita. Quindi, devi eseguire il seguente comando per installare il modulo tkinter nella versione Python 3+:
$ sudo adatto installare python3-tk
Diversi widget Tkinter
Il modulo tkinter contiene vari widget per vari scopi.
Nome del widget | Scopo |
Etichetta | Viene utilizzato per visualizzare il messaggio di aiuto per l'utente. |
Pulsante | Viene utilizzato per aggiungere diversi pulsanti nell'applicazione. |
Telaio | Funziona come un contenitore di widget che contiene diversi tipi di widget per progettare un modulo organizzato. |
Iscrizione | Viene utilizzato per prendere un testo di una riga dall'utente. |
Pulsante di controllo | Viene utilizzato per aggiungere i pulsanti delle caselle di controllo per ricevere più input dall'utente da più opzioni. |
Pulsante di opzione | Viene utilizzato per aggiungere i pulsanti di opzione per ricevere un singolo input dall'utente da più opzioni. |
Pulsante della casella combinata | Viene utilizzato per aggiungere un elenco a discesa per ricevere un singolo input dall'utente da più opzioni. |
ListBox | Viene utilizzato per aggiungere una casella di riepilogo per ricevere più input dall'utente da più opzioni. |
Testo | Viene utilizzato per prendere un testo su più righe dall'utente. |
Messaggio | Viene utilizzato per visualizzare la finestra dei messaggi per l'utente. |
Barra di scorrimento | Viene utilizzato per aggiungere una barra di scorrimento nella finestra per scorrere la finestra su e giù. |
Pulsante del menu | Viene utilizzato per visualizzare il menu all'utente. |
Menù | Viene utilizzato per visualizzare le voci di menu all'utente. |
Finestra con riquadro | Funziona come un contenitore di widget che contiene i riquadri orizzontale e verticale. |
Schede | Viene utilizzato per aggiungere una finestra a schede nell'applicazione. |
Diversi esempi di Tkinter
Gli usi di alcuni widget tkinter comuni sono mostrati negli esempi seguenti.
Esempio 1: creare un'applicazione GUI semplice
Crea un file Python con il seguente contenuto che visualizzi una finestra di dialogo al centro dello schermo con un titolo e l'altezza e la larghezza particolari:
#Importa il modulo necessario
dall'importazione di tkinter *
#Crea oggetto per la finestra
tkobj = Tk ( )
#Imposta il titolo della finestra
tkobj.titolo ( 'Modulo Impara tkinter' )
#Imposta l'altezza e la larghezza della finestra
tkobj.geometria ( '300x150' )
#Impostare centralmente la posizione di visualizzazione della finestra
tkobj.eval ( 'tk::PlaceWindow . centro' )
#Esegui Tkinter
tkobj.mainloop ( )
Produzione:
Il seguente output viene visualizzato dopo l'esecuzione dello script. Viene visualizzata una finestra di dialogo con il titolo 'Impara modulo tkinter':
Esempio 2: utilizzo di etichetta e pulsante
Crea un file Python con il seguente script che visualizza una finestra con un'etichetta e una finestra di dialogo:
#Importa il modulo necessariodall'importazione di tkinter *
#Crea un oggetto per la finestra
tkobj = Tk ( )
#Imposta il titolo della finestra
tkobj.titolo ( 'Modulo Impara tkinter' )
#Imposta l'altezza e la larghezza della finestra
tkobj.geometria ( '400x150' )
#Definisci oggetto etichetta
lbl = Etichetta ( tkobj, testo = 'È una finestra semplice' )
#Aggiungi etichetta alla finestra
lbl.pack ( ipadx = 30 , iPad = venti )
#Definisci oggetto pulsante
btn = pulsante ( tkobj, testo = 'Cliccami' )
#Aggiungi pulsante alla finestra con la posizione
btn.pack ( ipadx = 30 , iPad = 10 )
#Impostare centralmente la posizione di visualizzazione della finestra
tkobj.eval ( 'tk::PlaceWindow . centro' )
#Esegui Tkinter
tkobj.mainloop ( )
Produzione:
Dopo aver eseguito lo script, al centro dello schermo viene visualizzata una finestra con un'etichetta e un pulsante.
Esempio 3: impostare il colore del carattere e il colore dello sfondo
Crea un file Python con il seguente script che visualizza una finestra con un'etichetta e un pulsante colorato. Qui, l'attributo background viene utilizzato per impostare il colore di sfondo del pulsante e l'attributo in primo piano viene utilizzato per impostare il colore del carattere del pulsante:
#Importa il modulo necessariodall'importazione di tkinter *
#Crea un oggetto per la finestra
tkobj = Tk ( )
#Imposta il titolo della finestra
tkobj.titolo ( 'Modulo Impara tkinter' )
#Imposta l'altezza e la larghezza della finestra
tkobj.geometria ( '400x150' )
#Definisci oggetto etichetta
lbl = Etichetta ( tkobj, testo = 'Imposta il colore di sfondo e di primo piano' )
#Aggiungi etichetta alla finestra
lbl.pack ( ipadx = 30 , iPad = venti )
#Definisci l'oggetto pulsante con il colore di sfondo e di primo piano
btn = pulsante ( tkobj, testo = 'Cliccami' , sfondo = 'blu' , primo piano = 'rosso' )
#Aggiungi pulsante alla finestra con la posizione
btn.pack ( ipadx = 30 , iPad = 8 )
#Impostare centralmente la posizione di visualizzazione della finestra
tkobj.eval ( 'tk::PlaceWindow . centro' )
#Esegui Tkinter
tkobj.mainloop ( )
Produzione:
Dopo aver eseguito lo script viene visualizzata la seguente finestra:
Esempio 4: utilizzo di Frame
Nel seguente script Python, un'etichetta e due pulsanti vengono visualizzati all'interno di un widget frame. Crea un file Python con lo script per controllare l'output:
#Importa il modulo necessariodall'importazione di tkinter *
#Crea un oggetto per la finestra
tkobj = Tk ( )
#Imposta il titolo della finestra
tkobj.titolo ( 'Modulo tkinter' )
#Imposta l'altezza e la larghezza della finestra
tkobj.geometria ( '250x100' )
#Definisci oggetti cornice
frm = Cornice ( tkobj )
frm.pack ( )
lframe = Cornice ( tkobj )
lframe.pack ( lato =SINISTRA )
rframe = Cornice ( tkobj )
rframe.pack ( lato =DESTRA )
#Definisci l'etichetta all'interno della cornice
lbl = Etichetta ( fra, testo = 'Uso del telaio' , fig = 'blu' )
lbl.pack ( )
#Definisci i pulsanti all'interno della cornice
btn1 = Pulsante ( lframe, testo = '' , fig = 'nero' , bg = 'bianco' )
btn2.pack ( lato =DESTRA )
#Impostare centralmente la posizione di visualizzazione della finestra
tkobj.eval ( 'tk::PlaceWindow . centro' )
#Esegui Tkinter
tkobj.mainloop ( )
Produzione:
Dopo l'esecuzione dello script viene visualizzato il seguente output:
Esempio 5: gestire l'evento del pulsante
L'uso della finestra di messaggio è mostrato nello script seguente. La finestra di messaggio viene visualizzata quando si fa clic su un pulsante:
#Importa i moduli necessaridall'importazione di tkinter *
dalla finestra di messaggio di importazione di tkinter
#Crea un oggetto per la finestra
tkobj = Tk ( )
#Imposta il titolo della finestra
tkobj.titolo ( 'Modulo Impara tkinter' )
#Imposta l'altezza e la larghezza della finestra
tkobj.geometria ( '400x150' )
#Definire una funzione per visualizzare una finestra di messaggio
visualizzazione def ( ) :
messagebox.showinfo ( 'Informazione' , 'Il pulsante è stato cliccato.' )
#Crea testo di etichette con colore, stile e posizione del carattere
Etichetta ( tkobj, testo = 'Applicazione desktop che utilizza tkinter.' , fig = 'verde' ) .pacchetto ( Paddy = 25 )
#Crea un pulsante con un gestore di pulsanti
Pulsante ( tkobj, testo = 'Mostra messaggio' , comando =visualizzazione ) .pacchetto ( )
#Impostare centralmente la posizione di visualizzazione della finestra
tkobj.eval ( 'tk::PlaceWindow . centro' )
#Esegui Tkinter
tkobj.mainloop ( )
Produzione:
Dopo aver eseguito lo script viene visualizzata la seguente finestra:
Dopo aver premuto il pulsante viene visualizzata la seguente finestra di messaggio:
Esempio 6: prendere un input dall'utente
Nel modulo tkinter sono disponibili più widget per ricevere input dall'utente. Gli utilizzi dei widget più comuni sono mostrati nello script seguente. Crea un file Python con il seguente codice per controllare l'output:
#Importa i moduli necessaridall'importazione di tkinter *
da tkinter.ttk importa Combobox
da tkinter import ttk
importare tkinter COME ok
dalla finestra di messaggio di importazione di tkinter
#Crea oggetto tkinter
tkobj = Tk ( )
#Imposta il titolo della finestra
tkobj.titolo ( 'Modulo informazioni utente' )
#Imposta l'altezza e la larghezza della finestra
tkobj.geometria ( '550x320' )
#Definire una funzione per visualizzare i valori del modulo
def valori_visualizzati ( ) :
#Leggi testo a riga singola
nome = 'Nome : ' + nome_val.get ( ) + ' \N '
#Leggi il valore del pulsante di opzione selezionato
Se genere.get ( ) == 1 :
g = 'Maschio'
altro:
g = 'Femmina'
g = 'Genere : ' +g+ ' \N '
#Leggi i valori della casella di controllo selezionata
gioco = ''
Se g1.get ( ) == 1 :
gioco = 'Cricket'
Se g2.get ( ) == 1 :
Se gioco ! = '' :
gioco += ', ' + 'Calcio'
altro:
gioco = 'Calcio'
Se g3.get ( ) == 1 :
Se gioco ! = '' :
gioco += ', ' + 'Pallacanestro'
altro:
gioco = 'Pallacanestro'
gioco = 'Gioco : ' +gioco+ ' \N '
#Leggi i valori della casella combinata
paese = 'Paese : ' + paeseVal.get ( ) + ' \N '
#Leggi il testo su più righe
indirizzo = 'Indirizzo : ' + indirizzo.get ( '1.0' , 'FINE' ) + ' \N '
#Unisci tutti i valori presi dai campi
valori_forma = nome + g + gioco + paese + indirizzo
#Visualizza i valori nella finestra di messaggio
messagebox.showinfo ( 'Dettagli informazioni utente' , valori_forma )
#Crea un'etichetta e il campo del nome
Etichetta ( tkobj, testo = 'Nome : ' ) .posto ( X = 100 , E = venti )
nome_val = StringVar ( )
ttk.Entry ( tkobj, testovariabile =nome_val ) .pacchetto ( Padx = 220 , Paddy = venti )
#Crea un'etichetta e il pulsante di opzione
Etichetta ( tkobj, testo = 'Genere : ' ) .posto ( X = 100 , E = 60 )
genere = Var.int ( )
genere.set ( 1 )
Pulsante di opzione ( tkobj, testo = 'Maschio' , variabile =sesso, valore = 1 ) .posto ( X = 210 , E = 60 )
Pulsante di opzione ( tkobj, testo = 'Femmina' , variabile =sesso, valore = 2 ) .posto ( X = 290 , E = 60 )
#Crea un'etichetta e un pulsante casella di controllo
Etichetta ( tkobj, testo = 'Gioco preferito:' ) .posto ( X = 100 , E = 100 )
g1 = Var.int ( )
g2 = Var.int ( )
g3 = Var.int ( )
Pulsante di controllo ( tkobj, testo = 'Cricket' , variabile =g1 ) .posto ( X = 210 , E = 100 )
Pulsante di controllo ( tkobj, testo = 'Calcio' , variabile =g2 ) .posto ( X = 290 , E = 100 )
Pulsante di controllo ( tkobj, testo = 'Pallacanestro' , variabile =g3 ) .posto ( X = 380 , E = 100 )
#Definisce i valori della tupla
dati = ( 'Bangladesh' , 'Giappone' , 'STATI UNITI D'AMERICA' )
#Crea etichetta e casella combinata
Etichetta ( tkobj, testo = 'Paese : ' ) .posto ( X = 100 , E = 140 )
countryVal = StringVar ( )
Casella combinata ( tkobj, valori =dati, testovariabile =PaeseVal ) .posto ( X = 220 , E = 140 )
#Crea etichetta e campo di testo
Etichetta ( tkobj, testo = 'Indirizzo : ' ) .posto ( X = 100 , E = 180 )
indirizzo = ( tk.Testo ( tkobj, altezza = 3 , larghezza = venti ) )
indirizzo.luogo ( X = 220 , E = 180 )
#Crea un pulsante con un gestore di pulsanti
Pulsante ( tkobj, testo = 'Invia' , comando =visualizza_valori ) .posto ( X = 250 , E = 250 )
#Esegui Tkinter
tkobj.mainloop ( )
Produzione:
Dopo aver eseguito lo script viene visualizzata la seguente finestra:
Compila i campi del modulo e premi il pulsante “Invia”.
Apparirà la seguente finestra di messaggio con i valori inviati:
Conclusione
I metodi per utilizzare il modulo tkinter Python per creare le applicazioni GUI sono mostrati in questo tutorial utilizzando più esempi.