Tkinter Progress Bar

Tkinter Progress Bar

Når du jobber med Guis, er det ofte et flott alternativ å vise frem mengden av prosessen som er gjort i form av en fremdriftslinje. Siden Tkinter er et GUI-Building Library of Python, gir det en innebygd metode for å bygge en fremdriftslinje enkelt. Denne guiden vil vise deg hvordan ikke bare å bygge en fremdriftslinje, men også hvordan du bruker to forskjellige moduser av den og endrer verdien av fremdriftslinjen.

Hvordan bygge en fremdriftsbar i Tkinter Python?

Du må importere “TTK” -pakken og bruke fremdriftsbilen () -metoden.

Progvar = TTK.ProgressBar (Framevar, Orient, Lengde, Mode)

I syntaks av ProgressBar () -metoden:

  • Progvar: Er variabelen som vil bli brukt til å få tilgang til de forskjellige attributtene til fremdriftslinjen etter opprettelsen
  • Framevar: Er tkinter tk -variabelen, som er rammen/ruten som fremdriften vil vises
  • Orient: Dette argumentet vil bli brukt til å definere og sette orienteringen til fremdriftslinjen
  • lengde: Dette argumentet vil bli brukt til å definere og lengde på fremdriftslinjen
  • modus: Modusargumentet brukes til å stille modus til enten "bestemme" eller "ubestemmelig"

La oss bygge en enkel fremdriftslinje i Tkinter, som utvikler seg med 10% ved trykk på en knapp ved å bruke følgende kode:

#Start ved å importere TKinterbibliotekene
fra tkinter import *
fra tkinter import ttk
#After importen, lag rammen ved å bruke TK () -metoden
ramme = tk ()
ramme.Tittel ("Linuxhint - Progress Bar")
ramme.geometri ("400x200")
vindu = ramme (ramme)
#Method for å øke fremdriftsverdien
def pbar ():
progbar ['verdi']+= 10
#Build ProgressBar
Progbar = TTK.ProgressBar (ramme, Orient = horisontal, lengde = 400, modus = "Bestemmelse")
Progbar.pakke (pady = 40)
#Build -knapp
btn = knapp (ramme, tekst = "Klikk her!", kommando = pbar)
btn.pakke (pady = 10)
ramme.MainLoop ()

I denne kodebiten:

  • Importer først “Tkinter” -pakken og også “TTK” -pakken, som inneholder ProgressBar () -metoden
  • Lag en ramme ved å bruke Tk () -metoden
  • Definer metoden PBAR (), som bruker Progress Bar -variabelen “Progbar” for å få tilgang til “Value” -attributtet og øker den med 10
  • Lag "progbar" -variabelen ved å bruke progressbar () -metoden, og sett orienteringen til horisontal og modus for å bestemme
  • Til slutt, lag en knapp som kaller PBAR () -metoden for å øke verdien av fremdriftslinjen.

Når dette kodebiten utføres, produserer det følgende TKinter -vindu på maskinen din:

Som du kan se i utdata -GIF, ble fremdriftslinjen opprettet, og den fortsatte å komme videre på klikket på knappen. Når fremdriftslinjen har truffet maksimal lengde, oppstår ingen ytterligere endring ved knappetrykk.

Hvordan få fremdriftsbaren til å gå frem og tilbake i tkinter python?

For å få fremdriftslinjen til å gå frem og tilbake på trykk på knappen, må du bruke den "ubestemmelige" fremdriftslinjen. Med en "ubestemmelig" fremdriftslinje er målet ikke å vise prosentandelen av arbeidet som er utført av prosessen til brukeren. Snarere er målet bare å vise frem at en handling/hendelse er i prosess.

For å lage en ubestemmelig fremdriftslinje, bare endre modusargumentet i fremdrifts -metoden for å "ubestemmelig":

Progbar = TTK.ProgressBar (ramme, Orient = horisontal, lengde = 400, modus = "Bestemmelse")

Plasser denne linjen i forrige eksempel, utfør programmet, så produserer det følgende TKinter -vindu:

Som du kan se i utdata -gifen, stoppet ikke den ubestemmelige fremdriftslinjen ved 100% -merket, snarere begynte det å gå frem og tilbake på knappeklikkene.

Hvordan tilbakestille fremdriftslinjen i Tkinter Python?

For å tilbakestille verdien av fremdriftslinjen, bruker du bare fremdriftslinjevariabelen for å få tilgang til "verdien" -attributtet, og angi verdien lik null. En god praksis er å tilbakestille verdien av fremdriftslinjen på en knappetrykk.

For å demonstrere dette, ta denne modifiserte koden fra det første eksemplet:

fra tkinter import *
fra tkinter import ttk
#After importen, lag rammen ved å bruke TK () -metoden
ramme = tk ()
ramme.Tittel ("Linuxhint - Progress Bar")
ramme.geometri ("400x200")
vindu = ramme (ramme)
#Method for å øke/tilbakestille fremdriftsverdien
def pbar ():
progbar ['verdi']+= 10
def resetpbar ():
progbar ['verdi'] = 0
#Build ProgressBar
Progbar = TTK.ProgressBar (ramme, Orient = horisontal, lengde = 400, modus = "ubestemmelig")
Progbar.pakke (pady = 40)
#Build knapper
btn = knapp (ramme, tekst = "fremgang", kommando = pbar)
btn.pakke (pady = 10)
btn2 = knapp (ramme, tekst = "reset", kommando = resetpbar).pakke (padx = 10)
ramme.MainLoop ()

Når denne koden blir utført, produserer den følgende oppførsel av TKinter -vinduet på maskinen din:

Du kan observere at så snart "Reset" -knappen trykkes, tilbakestilles fremdriften til 0.

Konklusjon

Fremdriftsstenger er en flott måte å informere sluttbrukeren om en handlings fullføringsprosent eller utførelsesstatus. For å bygge en fremdriftslinje i Tkinter, bruk ProgressBar () -metoden til “TTK” -pakken og passere verdiene for ramme, orientering, lengde og modus. For å endre fremdriftsverdien til fremdriftslinjen, få tilgang til attributtet “verdi” og endre verdien i henhold til kravet ditt.