Tkinter Progress Bar

Tkinter Progress Bar



Du kan oppdatere klienten om statusen til en langvarig prosess med en fremdriftslinje-widget. Widgetens mål er å gi brukeren tillit til at noe skjer. Den har to forskjellige driftsmoduser. Når den er i bestemt modus, viser widgeten en indikasjon som beveger seg i en forhåndsbestemt retning. Widgeten flyttes i en ubestemt tilstand for å gi klienten et inntrykk av at noe skjer. Signalet svinger frem og tilbake mellom ytterpunktene av widgeten gjennom denne stilen. Bruken av bestemte og ubestemte fremdriftslinjer i Python vil bli dekket i denne opplæringen.

La oss starte med konfigurasjonen av et Tkinter-bibliotek i Python. Etter vellykket lansering av terminalen, prøv følgende spørring for å konfigurere Tkinter-pakken. Sørg for at Python allerede er installert før du bruker denne instruksjonen.

$ sudo apt installer python3-tk







Eksempel 1

La oss starte med vårt første eksempel på Python for å bruke Tkinter-modulen til å lage en bestemt fremdriftslinje på GUI. Dermed har vi opprettet en ny Python-fil kalt 'new.py' og lagt til følgende kode. Vi startet denne koden ved å importere alle underordnede objekter fra Tkinter-biblioteket til Python på første linje. Etter det importerte vi klasseobjektet 'ttk' fra Tkinter-modulen i den andre kodelinjen.



Klassekonstruktøren Tk() har blitt kalt og lagret objektet i 't'-variabelen. «Titel»-funksjonen er nådd med «t»-objektvariabelen for å lage en tittel for GUI. Størrelsen på et GUI Tkinter-vindu er satt til “300×200” via geometri()-funksjonen. Fremdriftslinjen vil bli generert av en 'Pbar()' brukerdefinert funksjon. Vi skal ta en titt på denne funksjonen i siste del av denne artikkelen.



Vi har laget en variabel 'p' ved 8 th linje i denne Python-koden som har brukt Progressbar()-funksjonen via 'ttk'-klasseobjektet for å lage en fremdriftslinje på GUI-skjermen. Objektet 't' har blitt sendt til det mens dets orientering er satt til Horisontal, lengden satt til 400, og modusen er bestemt, det vil si at den bare vil bevege seg i en bestemt retning. 'y'-aksens polstring er satt til 30 ved bruk av 'pack()'-funksjonen for denne fremdriftslinjen.





Etter dette har vi laget en ny knapp 'b' ved å bruke Button()-funksjonen og sendt den til objektet 't', litt tekst og kommandoen som skal utføres etter å ha klikket på knappen, dvs. funksjon kalt 'Pbar'-funksjonen. Pbar()-funksjonen vil øke verdien av fremdriftslinjen 'p' med ti og gå tilbake til variabelen 'b'. 'y'-aksen for knappen er satt til '10' ved hjelp av pack()-funksjonen, og mainloop()-funksjonen er her for å løkke ut hele utførelsen.



Etter å ha fullført en Python-kode, lagret vi den og kjørte den på konsollen via 'python3'-spørringen etterfulgt av navnet på en fil 'new.py':

$ python3 new.py

Den har lansert Tkinter GUI av Python med tittelen 'Progress Bar' på konsollskjermen vår. I det følgende bildet er det bare en fremdriftslinje uten behandling. Du må trykke på knappen først.

Etter å ha trykket på knappen 'Trykk her!', har den blå fremdriftslinjen blitt vist som følger:

Etter tre påfølgende klikk mottok vi følgende fremgang uten bevegelse:

Etter å ha nådd slutten av fremdriftslinjen, kan vi ikke gå videre, dvs. bestemme fremdriftslinjen.

Eksempel 2

La oss se på å lage en ubestemt fremdriftslinje som kan bevege seg bakover og fremover innenfor fremdriftsområdet ved å bruke Tkinter GUI Python-modulen. Så vi har startet denne Python-koden ved å importere Tkinter-modulen som 'tk' og ttk-objektet fra 'ttk'-klassen. tk-objektet har blitt kastet av for å få konstruktøren 'Tk()'-resultat og lagret i variabelen 't'.



't'-variabelen har blitt brukt med title()-funksjonen for å legge til en tittel for GUI sammen med geometri()-funksjonen for å bestemme størrelsen på et GUI-vindu som skal vises. Grid()-funksjonen har blitt kalt med 't'-variabelen for å organisere GUI i et tabellformat.

Etter det har vi brukt variabelen 'p' for å lage en fremdriftslinje via Progressbar()-funksjonen til ttk-klasseobjektet med samme 't'-variabel, horisontal orientering, 300 lengder og den ubestemte modusen. Fremdriftslinjen er organisert i en tabellform via 'grid()'-funksjonen som har brukt den spesifikke utfyllingen for 'x'- og 'y'-aksen. Vi har laget to knapper, 's' og 'e', for å starte bevegelsen av fremdriftslinjen, avslutte den og flytte den frem og tilbake.







Den klebrige parameteren til grid()-funksjonen for begge knappene definerer retningen, dvs. øst og vest. Kommandoene 'start' og 'stopp' er satt for begge knappene på 9 th og 11 th linje. Med kjøringen av mainloop()-funksjonen er programmet vårt fullført og klart til bruk etter lagring.





Henrettelsen har skjedd på lignende måte.





$ python3 new.py

På GUI lansert, har følgende skjermbilde blitt presentert:



Etter å ha trykket på 'Trykk for å starte'-knappen, begynte fremdriftslinjen å bevege seg fremover.

Etter å ha nådd slutten, beveger den seg i motsatt retning, dvs. vest.

Når du er ferdig med å trykke på 'Tap for å stoppe'-knappen, er fremdriftslinjen satt til utgangsposisjonen igjen.

Konklusjon

Denne artikkelen viste bruken av fremdriftslinjen i Tkinter GUI. Vi har ganske enkelt brukt objektene til Tkinter-klassen til å kalle forskjellige widgets for å gjøre Python GUI mer interaktiv. Vi har diskutert bruk av bestemte og ubestemte fremdriftslinjer i eksemplene våre. Vi håper du liker å implementere disse.