Tkinter è un toolkit di interfaccia utente grafica (GUI) che dovresti provare se vuoi esplorare la potenza di Python nella creazione di app desktop.

Qui, diamo uno sguardo alle basi del modulo della GUI di Tkinter.

Configurazione Tkinterinter

In genere, non è necessario installare tkinter separatamente se hai installato una versione successiva di Python, a partire da Python 3. Tuttavia, la libreria potrebbe non funzionare con le vecchie versioni di Python. Questo è un problema comune per gli utenti Mac e Linux, poiché questi sistemi operativi di solito vengono forniti con versioni precedenti di Python per impostazione predefinita.

In genere, per utilizzare il tkinter modulo, assicurati di scaricare e installare l'ultima versione compatibile di Python sul tuo PC dal sito ufficiale python.org sito web.

Se sei su Mac, in alternativa, puoi scaricare l'ultima versione di ActiveTcl, a tkinter compilatore da Stato attivo.

Come usare Tkinter

Tkinter dipende dal suo built-in TK classe. E racchiude tutti gli eventi all'interno della GUI in a

instagram viewer
ciclo principale. Così, il ciclo principale l'involucro fa il tuo tkinter codice eseguibile.

Per iniziare tkinter:

da tkinter import Tk
Tk().mainloop()

L'esecuzione del codice sopra fa girare un vuoto tkinter portafoto.

Le funzionalità di personalizzazione di Tkinter, tuttavia, sono nei suoi widget integrati.

Per utilizzare questi widget, puoi importarli da tkinter sostituendo da tkinter import Tk insieme a:

dall'importazione di tkinter *
t = Tk()
t.mainloop()

Puoi anche regolare la dimensione della finestra con il geometria funzione e quindi specificare un titolo utilizzando il titolo widget di tkinter:

t = Tk()
t.geometria("600x600")
t.title("Tutorial su Tk")
t.mainloop()

Tkinter ti consente di scrivere testi in chiaro direttamente nella GUI usando il Etichetta aggeggio:

t = Tk()
Etichetta (t, testo = "MUO Tkinter tutorial").grid()
t.mainloop()

Il griglia() metodo, tuttavia, è un'alternativa al pacchetto() metodo. Attacca i tuoi widget alla GUI, rendendoli visibili.

Puoi anche specificare un carattere per il tuo Etichetta testo:

t = Tk()
Etichetta (t, testo = "Tutorial MUO Tkinter", font=(60)).grid()
t.mainloop()

I pulsanti sono alcuni dei widget più utilizzati in tkinter. E puoi aggiungere questi pulsanti cliccabili alla tua GUI utilizzando i vari widget di pulsanti integrati.

Ecco come aggiungere un pulsante principale alla tua GUI usando il Pulsante aggeggio:

t = Tk()
Pulsante (t, testo = "Cliccabile", bg = "nero", fg = "bianco").grid()
t.mainloop()

Il bg e fg le parole chiave descrivono rispettivamente il colore di sfondo del pulsante e il colore del testo al suo interno.

Puoi anche regolare la dimensione del pulsante includendo il altezza e larghezza parametri:

t = Tk()
Pulsante (t, testo = "Cliccabile", bg = "nero", fg = "bianco", altezza="2", larghezza="10").grid()
t.mainloop()

Ecco l'output per questo:

E se vuoi rendere il pulsante più accattivante, puoi includere un sollievo parola chiave e quindi regolare la larghezza del bordo:

t = Tk()
Pulsante (t, testo = "Cliccabile", bg = "blu", fg = "bianco",
altezza=2, larghezza=10, rilievo=ALZATO, larghezza bordo=6).grid()
t.mainloop()

E questo assomiglia a questo:

Sostituire SOLLEVATO con PIATTO per vedere come viene fuori.

Puoi aggiungere tutti i pulsanti che desideri. Ma fai attenzione a evitare la sovrapposizione dei contenuti.

Per evitare sovrapposizioni, puoi specificare la posizione di riga e colonna per ciascun pulsante:

t = Tk()
Pulsante (t, testo=1, bg="nero", fg="bianco").grid (riga=1, colonna=1)
Pulsante (t, text=2, bg="black", fg="white").grid (riga=2, colonna=1)
Pulsante (t, text=3, bg="black", fg="white").grid (riga=3, colonna=1)
Pulsante (t, testo=4, bg="nero", fg="bianco").grid (riga=4, colonna=1)
t.mainloop()

Un optional comando la parola chiave, tuttavia, aggiunge eventi al Pulsante aggeggio. In sostanza, ancora una funzione opzionale che gestisce determinati eventi quando si fa clic su un pulsante.

Il codice seguente, ad esempio, moltiplica il valore di ciascun pulsante per 6 quando lo fai clic. E si basa su una funzione predefinita:

def premendo il pulsante (r):
r = 6*r
Etichetta (t, testo=r, carattere=(60)).grid (riga=5, colonna=2)
t = Tk()
Pulsante (t, testo = 1, bg = "nero", fg = "bianco", larghezza = 10, altezza = 2,
command = lambda: buttonpress (1)).grid (riga=1, colonna = 1, pady = 6)
Pulsante (t, testo = 2, bg = "nero", fg = "bianco", larghezza = 10,
command = lambda: buttonpress (2)).grid (riga = 2, colonna = 1, pady = 6)
Pulsante (t, testo = 3, bg = "nero", fg = "bianco", larghezza = 10,
command = lambda: buttonpress (3)).grid (riga = 3, colonna = 1, pady = 6)
Pulsante (t, testo = 4, bg = "nero", fg = "bianco", larghezza = 10,
command = lambda: buttonpress (4)).grid (riga = 4, colonna = 1, pady = 6)
t.mainloop()

Nel codice sopra, pulsante gestisce l'evento di moltiplicazione. Il Pulsante widget quindi punta a quel gestore di eventi usando un anonimo lambda funzione.

E se sei preoccupato per il pady parola chiave, separa distintamente ogni pulsante nella riga. Sostituendo questo con padx separa i pulsanti lungo la colonna. E puoi usare entrambe le parole chiave contemporaneamente per separare i pulsanti su entrambi gli assi come desideri.

Detto questo, non vuoi reinventare la ruota per ogni pulsante come hai fatto nel codice precedente. Questo rallenta il tempo di esecuzione, inoltre rende il codice difficile da leggere e restringe.

Ma tu puoi usa un ciclo for per evitare questa ripetizione.

Quindi ecco una versione più breve e migliore del codice sopra:

def premendo il pulsante (r):
r = 6*r
Etichetta (t, testo = r, carattere = (60)).grid (riga = 5, colonna = 2)
t = Tk()
a = [1, 4, 6, 7]
per io in un:
j = lambda y = i: pressione del pulsante (y)
Pulsante (t, testo = i, bg = "nero", fg = "bianco", larghezza = 10, altezza = 2,
comando=j).grid (riga = i, colonna = 1, pady = 6)
t.mainloop()

Pulsanti del menu e pulsanti di controllo

Esploriamo ulteriormente il potere di per loop per aggiungere pulsanti di menu alla tua GUI:

dall'importazione di tkinter *
t = Tk()
pulsanti = ["File", "Dashboard", "Menu", "Impostazioni", "Aiuto"]
m = 0
per i nell'intervallo (len (pulsanti)):
# Ottieni ogni testo nell'array dei pulsanti usando un indice di elenco all'aumentare di m.
# Quindi lascia che la colonna aumenti di 1 attraverso la lunghezza dell'array:

Pulsante menu (t, testo=pulsanti[m], bg="blu", fg="bianco").griglia (riga=5, colonna=i)
m += 1
t.mainloop()

Anche l'aggiunta di pulsanti di controllo alla GUI è abbastanza semplice:

t = Tk()
Pulsante di spunta (t, testo = "Seleziona opzione").grid()
t.mainloop()

Sentiti libero di moltiplicare quel pulsante di spunta usando il per loop, come abbiamo fatto prima.

Il Menù widget ti consente di progettare menu a discesa cliccabili in tkinter.

Come detto in precedenza, tkinter offre molte opzioni di widget. E ne utilizzerai alcuni durante la progettazione del menu a discesa.

Ecco alcune delle opzioni di widget comuni che incontrerai durante la creazione di un menu a discesa:

  • add_cascade: Visualizza un'etichetta di menu e la attacca dove appartiene.
  • add_separator: Delimita i sottomenu e li raggruppa in sottomenu superiore e inferiore.
  • add_command: Qui è dove dai un nome al tuo sottomenu. In definitiva, accetta un argomento di comando in cui è possibile specificare un gestore di eventi.

Ecco un esempio di menu a discesa che utilizza queste tre opzioni:

dall'importazione di tkinter *
t = Tk()
fileOptions = ["Nuovo", "apri", "Salva", "Salva con nome"]
fileOptionsAfterseparator = ["Importa", "Esporta", "Esci"]
viewOptions = ["Trasforma", "Modifica", "Crea"]
menuBar = Menu (t)
file = Menu (menuBar, tearoff=0)
per i in fileOptions:
file.add_command (etichetta=i, comando=Nessuno)
file.add_separator()
for i in fileOptionsAfterseparator:
file.add_command (etichetta=i, comando=Nessuno)
menuBar.add_cascade (label="File", menu=file)
Visualizza = Menu (menuBar, tearoff=0)
per i in vistaOpzioni:
View.add_command (label=i, command=Nessuno)
menuBar.add_cascade (label = "Visualizza", menu = Visualizza)
t.config (menu=menuBar)
t.mainloop()

Guarda come appare:

Menu delle opzioni di Tkinter

Un Menu Opzioni, non mi piace il Menù menu a discesa, cambia la sua etichetta in un'opzione selezionata.

Sebbene sia possibile specificare un valore di etichetta predefinito per un menu di opzioni, per impostazione predefinita non ha un'etichetta.

Relazionato: Idee di progetto Python adatte ai principianti

Ecco come creare un menu di opzioni in tkinter:

t = Tk()
Omenu = StringVar() #imposta il tipo di variabile delle opzioni
Omenu.set("MUO") #specificare un valore predefinito per l'icona del menu
OptionMenu (t, Omenu, "MUO", "Amazon", "Tutorial").grid()
t.mainloop()

Crea un'app desktop riutilizzabile con Tkinter

Tkinter offre una serie di funzionalità che ti aiutano a creare app desktop con GUI interattive. Anche se potrebbe non avere molte funzionalità di abbellimento flessibili come alcuni altri moduli della GUI Python, è comunque uno strumento utile che vale la pena esplorare. E mentre gli esempi qui mostrano solo alcuni dei concetti di base, tkinter offre funzionalità più avanzate che puoi provare.

Detto questo, puoi creare una calcolatrice desktop GUI, creare un mini editor di testo o persino creare un'app desktop GUI per gestire i tuoi inventari. Se vuoi spiegare le tue ali e diventare un desktop GUI major, puoi anche controllare altri moduli GUI di Python.

E-mail
GUI? Che cos'è un'interfaccia utente grafica?

Usi una GUI? È probabile che tu li abbia perché li usi ogni singolo giorno.

Leggi Avanti

Argomenti correlati
  • Programmazione
  • Pitone
Circa l'autore
Idowu Omisola (88 articoli pubblicati)

Idowu è appassionato di qualsiasi tecnologia intelligente e produttività. Nel tempo libero gioca con la programmazione e quando si annoia passa alla scacchiera, ma ama anche staccare ogni tanto dalla routine. La sua passione per mostrare alle persone la tecnologia moderna lo motiva a scrivere di più.

Altro da Idowu Omisola

Iscriviti alla nostra Newsletter

Iscriviti alla nostra newsletter per consigli tecnici, recensioni, ebook gratuiti e offerte esclusive!

Clicca qui per iscriverti