Tkinter Progress Bar

Tkinter Progress Bar

Quando si lavora con GUI, è spesso un'ottima opzione per mostrare la quantità del processo eseguita sotto forma di una barra di avanzamento. Poiché il Tkinter è una libreria di Python, fornisce un metodo integrato per costruire facilmente una barra di avanzamento. Questa guida ti mostrerà come non solo costruire una barra di avanzamento, ma anche come usarne due diverse modalità e cambiare il valore della barra di avanzamento.

Come costruire una barra di progresso in Tkinter Python?

È necessario importare il pacchetto "TTK" e utilizzare il suo metodo ProgressBar ().

Progvar = ttk.ProgressBar (Framevar, Orienta, Lunghezza, Modalità)

Nella sintassi del metodo ProgressBar ():

  • Progvar: È la variabile che verrà utilizzata per accedere ai diversi attributi della barra di avanzamento dopo la sua creazione
  • Framevar: È la variabile tkinter tk, che è la cornice/riquadro su cui verrebbero visualizzati i progressi
  • Oriente: Questo argomento verrà utilizzato per definire e impostare l'orientamento della barra di avanzamento
  • lunghezza: Questo argomento verrà utilizzato per definire e lunghezza della barra di avanzamento
  • modalità: L'argomento della modalità viene utilizzato per impostare la modalità su "determinante" o "indeterminato"

Costruiamo una semplice barra di avanzamento in Tkinter, che progredisce del 10% sulla stampa di un pulsante utilizzando il seguente codice:

#Start importando le biblioteche Tkinter
da tkinter import *
da tkinter import ttk
#Dopo l'importazione, crea il frame utilizzando il metodo tk ()
frame = tk ()
telaio.Titolo ("Linuxhint - Progress Bar")
telaio.geometria ("400x200")
finestra = frame (frame)
#Method per aumentare il valore di avanzamento
def pbar ():
Progbar ['Value']+= 10
#Build ProgressBar
Progbar = ttk.ProgressBar (frame, Orient = orizzontale, lunghezza = 400, modalità = "determinato")
Progbar.pacchetto (pady = 40)
Pulsante #Build
BTN = pulsante (frame, text = "Fai clic qui!", comando = pbar)
btn.pacchetto (pady = 10)
telaio.mainloop ()

In questo frammento di codice:

  • Innanzitutto, importa il pacchetto "Tkinter" e anche il pacchetto "TTK", che contiene il metodo ProgressBar ()
  • Crea un frame utilizzando il metodo TK ()
  • Definisci il metodo pbar (), che utilizza la variabile della barra di avanzamento "progbar" per accedere all'attributo "valore" e lo aumenta di 10
  • Crea la variabile "Progbar" utilizzando il metodo ProgressBar () e impostare l'orientamento su orizzontale e la modalità per determinare
  • Infine, crea un pulsante che chiama il metodo PBAR () per aumentare il valore della barra di avanzamento.

Quando viene eseguito questo frammento di codice, produce la seguente finestra Tkinter sulla macchina:

Come puoi vedere nella GIF di output, è stata creata la barra di avanzamento e ha continuato a progredire sul clic del pulsante. Tuttavia, una volta che la barra di avanzamento ha raggiunto la lunghezza massima, non si verifica ulteriori modifiche al pulsante Premere.

Come fare la barra del progresso andare avanti e indietro a Tkinter Python?

Per rendere la barra di avanzamento di andare avanti e indietro sulla stampa del pulsante, è necessario utilizzare la barra di avanzamento "indeterminata". Con una barra di avanzamento "indeterminata", l'obiettivo non è quello di mostrare la percentuale di lavoro svolto dal processo all'utente. Piuttosto l'obiettivo è solo quello di mostrare che è in corso un'azione/evento.

Per creare una barra di progresso indeterminata, modifica semplicemente l'argomento della modalità nel metodo ProgressBar () per "indeterminato":

Progbar = ttk.ProgressBar (frame, Orient = orizzontale, lunghezza = 400, modalità = "determinato")

Posizionare questa riga nell'esempio precedente, eseguire il programma e produrrà la seguente finestra Tkinter:

Come puoi vedere nella GIF di output, la barra di avanzamento indeterminata non si è fermata al marchio al 100%, piuttosto ha iniziato a andare avanti e indietro sui clic del pulsante.

Come ripristinare la barra di avanzamento di Tkinter Python?

Per ripristinare il valore della barra di avanzamento, utilizzare semplicemente la variabile della barra di avanzamento per accedere all'attributo "valore" e impostare il suo valore pari a zero. Una buona pratica è ripristinare il valore della barra di avanzamento su un pulsante Premere.

Per dimostrarlo, prendi questo codice modificato dal primo esempio:

da tkinter import *
da tkinter import ttk
#Dopo l'importazione, crea il frame utilizzando il metodo tk ()
frame = tk ()
telaio.Titolo ("Linuxhint - Progress Bar")
telaio.geometria ("400x200")
finestra = frame (frame)
#Method per aumentare/ripristinare il valore di avanzamento
def pbar ():
Progbar ['Value']+= 10
def resetPBar ():
Progbar ['Value'] = 0
#Build ProgressBar
Progbar = ttk.ProgressBar (frame, orientale = orizzontale, lunghezza = 400, modalità = "indeterminato")
Progbar.pacchetto (pady = 40)
Pulsanti #Build
btn = pulsante (frame, text = "progress", comando = pbar)
btn.pacchetto (pady = 10)
btn2 = pulsante (frame, text = "reset", comand = resetPbar).pacchetto (padx = 10)
telaio.mainloop ()

Quando questo codice viene eseguito, produce il seguente comportamento della finestra Tkinter sulla macchina:

È possibile osservare che non appena viene premuto il pulsante "Ripristina", il progresso viene ripristinato a 0.

Conclusione

Le barre di avanzamento sono un ottimo modo per informare l'utente finale sulla percentuale di completamento di un'azione o sullo stato di esecuzione. Per creare una barra di avanzamento in tkinter, utilizzare il metodo ProgressBar () del pacchetto "TTK" e passare i valori per frame, orientamento, lunghezza e modalità. Per modificare il valore di avanzamento della barra di avanzamento, accedere al suo attributo "valore" e modificarne il valore in base alle tue esigenze.