Tkinter Gui in Python

Tkinter Gui in Python
Le GUI consentono agli utenti di interagire con il computer e sono una parte importante della codifica. Questo tutorial imparerà come utilizzare Tkinter per creare una GUI, in particolare un convertitore di valuta.

Installa tkinter come segue:

PIP Installa TK

Passaggio 1: creazione della finestra

La prima cosa che dobbiamo fare è creare la finestra usando la classe TK (). Tuttavia, iniziamo la finestra e la continuiamo usando il metodo mainloop (). Si prega di notare che la finestra creata non sarà visibile senza il metodo MainLoop ()! Ricorda che il metodo MainLoop () deve essere posizionato alla fine del codice; Altrimenti, il resto non funzionerà. La finestra.mainloop () e tk () insieme creeranno una finestra vuota e vuota. Questa finestra è la nostra base.

Importa tkinter come tk
# Crea la finestra
finestra = tk.TK ()
#Mainloop
finestra.mainloop ()

Passaggio 2: dai un titolo a Window

Successivamente, diamo a questa finestra vuota un titolo usando il metodo Title (). Il metodo Titolo () prende un singolo argomento: il titolo della finestra.

importa tkinter come tk
finestra = tk.TK ()
# Dagli un titolo
Intestazione = finestra.Titolo ("Convertitore valutario")
finestra.mainloop ()

Passaggio 3: creare una tela

Il widget tela viene utilizzato per aggiungere design. Ora definiamo il widget di tela, che può prendere 13 argomenti al massimo. Tuttavia, gli argomenti più importanti sono la finestra con cui vogliamo lavorare e l'altezza e la larghezza della tela. In Tkinter, la maggior parte delle cose è piena, quindi la tela è piena utilizzando il metodo pack () per funzionare.

importa tkinter come tk
finestra = tk.TK ()
Intestazione = finestra.Titolo ("Convertitore valutario")
canvas = tk.Tela (finestra, larghezza = 550, altezza = 330)
tela.pacchetto()
finestra.mainloop ()

Passaggio 4: aggiunta di etichette

Le etichette sono fondamentalmente solo frammenti di testi che aggiungiamo alla finestra. Nel mio caso, aggiungerò 3 etichette: un'etichetta è il titolo e le altre due sono istruzioni. Il widget dell'etichetta prende 2 argomenti qui: la finestra per posizionare il testo e il testo per scrivere. È possibile personalizzarlo ulteriormente usando config () per passare il carattere e le dimensioni del testo che hai appena scritto.

Creiamo ulteriormente un oggetto Finestra Canvas utilizzando Create_Window (). Create_window () prende al massimo 6 argomenti: l'ancora, l'altezza, lo stato, i tag, la larghezza e la finestra (il widget utilizzato per creare la tela). Useremo solo l'ancoraggio e la finestra per create_windows (). Quindi, nel mio caso, per la seconda etichetta - etichetta_search_bar - voglio posizionare su x = 150, y = 120, e la finestra che userò è l'etichetta che abbiamo creato (tela.Create_Window (150, 120, Window = etichetta_search_bar)).

importa tkinter come tk
finestra = tk.TK ()
Intestazione = finestra.Titolo ("Convertitore valutario")
canvas = tk.Tela (finestra, larghezza = 550, altezza = 330)
tela.pacchetto()
etichetta = tk.Etichetta (finestra, text = "Convertitore valutario di Kalyani")
etichetta.config (font = ('helvetica', 14))
tela.create_window (270, 75, finestra = etichetta)
etichetta_search_bar = tk.Etichetta (finestra, text = "Da (Ex: 500 USD):")
etichetta.config (font = ('helvetica', 14))
tela.Create_Window (150, 120, Window = etichetta_search_bar)
etichetta_convert_currency = tk.Etichetta (finestra, text = "to (ex: cad):")
etichetta.config (font = ('helvetica', 14))
tela.Create_Window (270, 120, Window = etichetta_convert_currency)
finestra.mainloop ()

Passaggio 5: aggiunta di una barra di input

Una barra di input è come una barra di ricerca; È una piccola casella in cui è possibile inserire dati o informazioni. Usiamo il widget di iscrizione per creare la barra di input. Il widget di entrata prende al massimo 18 argomenti. Ne useremo solo uno: la finestra del genitore. Quindi lo posizioniamo, come al solito, usando la tela.create_window ().

importa tkinter come tk
finestra = tk.TK ()
Intestazione = finestra.Titolo ("Convertitore valutario")
canvas = tk.Tela (finestra, larghezza = 550, altezza = 330)
tela.pacchetto()
etichetta = tk.Etichetta (finestra, text = "Convertitore valutario di Kalyani")
etichetta.config (font = ('helvetica', 14))
tela.create_window (270, 75, finestra = etichetta)
etichetta_search_bar = tk.Etichetta (finestra, text = "Da (Ex: 500 USD):")
etichetta.config (font = ('helvetica', 14))
tela.Create_Window (150, 120, Window = etichetta_search_bar)
etichetta_convert_currency = tk.Etichetta (finestra, text = "to (ex: cad):")
etichetta.config (font = ('helvetica', 14))
tela.Create_Window (270, 120, Window = etichetta_convert_currency)
Search_bar = tk.Ingresso (finestra)
tela.create_window (150, 150, altezza = 30, larghezza = 100, finestra = search_bar)
convert_currency = tk.Ingresso (finestra)
tela.create_window (270, 150, altezza = 30, larghezza = 100, finestra = convert_currency)
finestra.mainloop ()

Passaggio 6: aggiunta di un pulsante

Per creare un pulsante, abbiamo bisogno del widget del pulsante. Questo widget assume molti argomenti, tra i quali sono il testo (il testo da visualizzare sul pulsante), la larghezza, l'altezza, il BG (il colore di sfondo del pulsante), il FG (il colore di primo piano del pulsante ), il carattere e il comando. Qui, la parte più importante è il comando! Il comando definirà una funzione che verrà attivata quando si fa clic sul pulsante. Nel mio caso, ho chiamato la mia funzione CurrencyConverter. Per cominciare, metterò "Pass" nella mia funzione CurrencyConverter. (Naturalmente, individuare il pulsante usando create_window).

importa tkinter come tk
def CurrencyConverter ():
passaggio
finestra = tk.TK ()
Intestazione = finestra.Titolo ("Convertitore valutario")
canvas = tk.Tela (finestra, larghezza = 550, altezza = 330)
tela.pacchetto()
etichetta = tk.Etichetta (finestra, text = "Convertitore valutario di Kalyani")
etichetta.config (font = ('helvetica', 14))
tela.create_window (270, 75, finestra = etichetta)
etichetta_search_bar = tk.Etichetta (finestra, text = "Da (Ex: 500 USD):")
etichetta.config (font = ('helvetica', 14))
tela.Create_Window (150, 120, Window = etichetta_search_bar)
etichetta_convert_currency = tk.Etichetta (finestra, text = "to (ex: cad):")
etichetta.config (font = ('helvetica', 14))
tela.Create_Window (270, 120, Window = etichetta_convert_currency)
Search_bar = tk.Ingresso (finestra)
tela.create_window (150, 150, altezza = 30, larghezza = 100, finestra = search_bar)
convert_currency = tk.Ingresso (finestra)
tela.create_window (270, 150, altezza = 30, larghezza = 100, finestra = convert_currency)
Button = tk.Pulsante(
finestra,
text = "converti valuta",
larghezza = 25,
altezza = 3,
bg = "bianco",
fg = "nero",
font = ('Helvetica', 9, 'Bold'),
Command = CurrencyConverter
)
tela.create_window (275, 200, altezza = 40, larghezza = 150, finestra = pulsante)
finestra.mainloop ()

Passaggio 7: scrivere la funzione di comando

Qui, la funzione di comando dirà al programma cosa fare quando l'utente fa clic sul pulsante. Nel mio caso, mi piacerebbe:

  • Ottieni i valori di input usando il metodo get ().
  • Controlla i valori di input. Voglio un numero e una valuta nella prima barra di input, e nella seconda, voglio una valuta.
  • Converti i valori di valuta utilizzando il modulo CurrencyConverter in Python.
  • Strofinare il valore
importa tkinter come tk
def CurrencyConverter ():

Innanzitutto, prenderemo ciò che l'utente ha scritto nelle barre di input usando il metodo get () e lo posizioneremo in iniziale_currency.

Inizial_Currency = Search_Bar.Ottenere()

Qui, ci aspettiamo due valori (Ex: 500 USD), quindi l'abbiamo diviso per trasformarlo in un array.

array = iniziale_currency.diviso(" ")

Diciamo quindi che se la lunghezza di quell'array non è 2, vogliamo che lanci un errore sullo schermo della finestra. Nel mio caso, userò il widget etichetta () per creare il testo da visualizzare. Vale a dire, se la lunghezza del mio array non è 2, quindi scrivi "Inserisci un importo e un tipo di valuta (Ex: 500 USD)" sullo schermo. Posizionarlo usando la tela.create_windows ().

Se len (array) != 2:
print_out = etichetta (finestra, text = "Inserisci un importo e un tipo di valuta (Ex: 500 USD)")
tela.create_window (250, 310, window = print_out)

Vogliamo quindi recuperare i valori che sono stati inseriti. L'importo è il primo valore nell'array e il tipo di valuta è il secondo valore nell'array.

importo = int (array [0])
valuta = str (array [1]).superiore()

Successivamente, abbiamo bisogno del tipo di valuta che l'importo viene convertito in (Ex: 500 USD in CAD). Ho definito una variabile chiamata TO_Currency per ottenere l'input dell'utente nella seconda barra di input. Ancora una volta, utilizziamo il metodo Get () per recuperare il valore.

To_Currency = Convert_Currency.Ottenere()

Ora, dobbiamo manomettere quello che abbiamo appena ottenuto. L'utente ha inserito alcune cose e vogliamo solo il primo valore di ciò che è stato inserito, quindi abbiamo diviso tutto e abbiamo scelto il primo valore usando [0]. (Sto anche trasformando tutto in maiuscolo per evitare problemi).

Array_to_Currency = to_Currency.diviso(" ")
To_Currency = STR (Array_to_Currency [0])
To_Currency = to_Currency.superiore()

Ora, utilizziamo un modulo di Python chiamato Currency Converter (PIP Installa CurrencyConverter). Convertiamo la valuta e otteniamo un importo (qui, chiamo questo importo variabile_converted).

da Currency_Converter Import CurrencyConverter
C = CurrencyConverter ()
importo_converted = c.Converti (importo, valuta, to_currency)

Successivamente, dobbiamo stamparlo sulla finestra. Come sappiamo, stampiamo il testo usando il widget dell'etichetta. Poiché la quantità_converted (la valuta convertita) è un galleggiante, diciamo:

text_to_input = str (image_converted) + "" + to_currency
print_out_answer = etichetta (finestra, text = text_to_input)
tela.create_window (450, 150, window = print_out_answer)

L'intero codice sembrerebbe così:

da tkinter import *
def CurrencyConverter ():
# Ottieni l'input nella barra di ricerca
Inizial_Currency = Search_Bar.Ottenere()
# Dividilo
array = iniziale_currency.diviso(" ")
Se len (array) != 2:
print_out = etichetta (finestra, text = "Inserisci un importo e un tipo di valuta (Ex: 500 USD)")
tela.create_window (250, 310, window = print_out)
# Ottieni l'importo "da" e l'importo in dollari
importo = int (array [0])
valuta = str (array [1]).superiore()
# Ottieni l'input nella valuta convertita a
To_Currency = Convert_Currency.Ottenere()
Array_to_Currency = to_Currency.diviso(" ")
To_Currency = STR (Array_to_Currency [0])
To_Currency = to_Currency.superiore()
# Convertilo
da Currency_Converter Import CurrencyConverter
C = CurrencyConverter ()
importo_converted = c.Converti (importo, valuta, to_currency)
# Stampa la risposta
text_to_input = str (image_converted) + "" + to_currency
print_out_answer = etichetta (finestra, text = text_to_input)
tela.create_window (450, 150, window = print_out_answer)
# Crea la finestra
finestra = tk ()
# Crea una tela e mettila
Canvas = Canvas (finestra, larghezza = 550, altezza = 330, rilievo = 'rialzato')
tela.pacchetto()
# Dagli un titolo
Intestazione = finestra.Titolo ("Convertitore di valuta di Kalyani")
# Nome del browser
Etichetta = etichetta (finestra, text = "Convertitore valutario di Kalyani")
etichetta.config (font = ('helvetica', 14))
tela.create_window (270, 75, finestra = etichetta)
# Crea una barra di ricerca
Search_bar = Entry (finestra, Justify = Center)
tela.create_window (150, 150, altezza = 30, larghezza = 100, finestra = search_bar)
# etichetta la barra di ricerca
etichetta_search_bar = etichetta (finestra, text = "da (ex: 500 USD):")
etichetta.config (font = ('helvetica', 14))
tela.Create_Window (150, 120, Window = etichetta_search_bar)
# Converti la valuta
convert_currency = entry (finestra, justify = center)
tela.create_window (270, 150, altezza = 30, larghezza = 100, finestra = convert_currency)
# etichetta la valuta
etichetta_convert_currency = etichetta (finestra, text = "to (ex: cad):")
etichetta.config (font = ('helvetica', 14))
tela.Create_Window (270, 120, Window = etichetta_convert_currency)
#Crea un pulsante
pulsante = pulsante (
finestra,
text = "converti valuta",
larghezza = 25,
altezza = 3,
bg = "bianco",
fg = "nero",
font = ('Helvetica', 9, 'Bold'),
Command = CurrencyConverter
)
#Posizionare il pulsante
tela.create_window (275, 200, altezza = 40, larghezza = 150, finestra = pulsante)
#Mainloop
finestra.mainloop ()

Sebbene il codice sia un po 'più lungo del previsto, in realtà è abbastanza semplice. Devi solo ricordare alcune cose:

  • Scrivi testi con il widget dell'etichetta
  • Crei pulsanti con il widget del pulsante
  • Crei barre di input con il widget di entrata
  • Li posiziona nella posizione giusta usando il widget tela e create_window ()

Codice felice!