Tkinter Progress Bar

Tkinter Progress Bar



Môžete aktualizovať klienta o stave zdĺhavého procesu pomocou widgetu indikátora priebehu. Cieľom widgetu je poskytnúť používateľovi istotu, že sa niečo deje. Má dva rôzne režimy prevádzky. V určitom režime miniaplikácia zobrazuje indikáciu, ktorá sa pohybuje vopred určeným smerom. Widget sa pohybuje v neurčitom stave, aby klient mohol mať dojem, že sa niečo deje. Signál osciluje tam a späť medzi koncami miniaplikácie počas tohto štýlu. V tomto návode sa budeme zaoberať používaním určitých a neurčitých indikátorov priebehu v Pythone.

Začnime s konfiguráciou knižnice Tkinter v Pythone. Po úspešnom spustení terminálu vyskúšajte nasledujúci dotaz na konfiguráciu balíka Tkinter. Pred použitím tohto návodu sa uistite, že už máte nainštalovaný Python.

$ sudo apt install python3-tk







Príklad 1

Začnime s naším prvým príkladom Pythonu na použitie modulu Tkinter na vytvorenie určitého indikátora priebehu v jeho GUI. Preto sme vytvorili nový súbor Python s názvom „new.py“ a pridali sme nasledujúci kód. Tento kód sme začali importovaním všetkých podriadených objektov z knižnice Tkinter v Pythone na prvom riadku. Potom sme importovali objekt triedy „ttk“ z modulu Tkinter v druhom riadku kódu.



Bol zavolaný konštruktor triedy Tk() a jeho objekt bol uložený do premennej „t“. Funkcia „title“ bola dosiahnutá pomocou objektovej premennej „t“ na vytvorenie názvu pre GUI. Veľkosť okna GUI Tkinter bola nastavená na „300×200“ pomocou funkcie geometry(). Ukazovateľ priebehu bude generovaný používateľom definovanou funkciou „Pbar()“. Na túto funkciu sa pozrieme v druhej časti tohto článku.



Vytvorili sme premennú „p“ na 8 th riadok tohto kódu Python, ktorý používal funkciu Progressbar() cez objekt triedy „ttk“ na vytvorenie indikátora priebehu na obrazovke GUI. Objekt „t“ mu bol odovzdaný, zatiaľ čo jeho orientácia bola nastavená na horizontálnu, jeho dĺžka nastavená na 400 a jeho režim je určený, t. j. bude sa pohybovať iba v určitom smere. Výplň osi „y“ bola nastavená na 30 pomocou funkcie „pack()“ pre tento indikátor priebehu.





Potom sme pomocou funkcie Button() vytvorili nové tlačidlo „b“ a odovzdali sme mu objekt „t“, nejaký text a príkaz, ktorý sa vykoná po kliknutí na tlačidlo, t. j. funkciu tzv. funkciu „Pbar“. Funkcia Pbar() by zvýšila hodnotu indikátora priebehu „p“ o desať a vrátila by sa k premennej „b“. Výplň osi „y“ pre tlačidlo bola nastavená na „10“ pomocou funkcie pack() a funkcia mainloop() je tu na to, aby prerušila celé vykonávanie.



Po dokončení kódu Pythonu sme ho uložili a spustili na konzole pomocou dotazu „python3“, po ktorom nasledoval názov súboru „new.py“:

$ python3 new.py

Spustil Tkinter GUI Pythonu s názvom „Progress Bar“ na obrazovke našej konzoly. Na nasledujúcom obrázku je len indikátor priebehu bez spracovania. Najprv musíte stlačiť tlačidlo.

Po ťuknutí na tlačidlo „Tap here!“ sa modrý indikátor priebehu zobrazí nasledovne:

Po troch po sebe idúcich kliknutiach sme zaznamenali nasledujúci pokrok bez pohybu:

Po dosiahnutí konca indikátora priebehu sa už nemôžeme posunúť ďalej, t. j. určiť indikátor priebehu.

Príklad 2

Pozrime sa na vytvorenie neurčitého indikátora priebehu, ktorý sa môže pohybovať dopredu a dozadu v rámci oblasti postupu pomocou modulu Tkinter GUI Python. Tento kód Pythonu sme teda začali importovaním modulu Tkinter ako „tk“ a objektu ttk z triedy „ttk“. Objekt tk bol zrušený, aby sa získal výsledok konštruktora „Tk()“ a uložený do premennej „t“.



Premenná „t“ bola použitá s funkciou title() na pridanie názvu pre GUI popri funkcii geometry() na určenie veľkosti okna GUI, ktoré sa má zobraziť. Funkcia grid() bola volaná s premennou „t“ na usporiadanie GUI do tabuľkového formátu.

Potom sme pomocou premennej „p“ vytvorili indikátor priebehu prostredníctvom funkcie Progressbar() objektu triedy ttk s rovnakou premennou „t“, horizontálnou orientáciou, 300 dĺžkami a neurčitým režimom. Ukazovateľ priebehu bol usporiadaný tabuľkovým spôsobom pomocou funkcie „grid()“, ktorá používala špecifické vypchávky pre os „x“ a „y“. Vytvorili sme dve tlačidlá, „s“ a „e“, na spustenie pohybu indikátora priebehu, jeho ukončenie a pohyb tam a späť.







Sticky parameter funkcie grid() pre obe tlačidlá definuje smer, tj východ a západ. Príkazy „štart“ a „stop“ boli nastavené pre obe tlačidlá na 9 th a 11 th riadok. Spustením funkcie mainloop() bol náš program dokončený a pripravený na použitie po jeho uložení.





Poprava prebehla podobným spôsobom.





$ python3 new.py

Po spustení GUI sa zobrazí nasledujúca obrazovka:



Po stlačení tlačidla „Začať klepnutím“ sa indikátor priebehu začal posúvať dopredu.

Po dosiahnutí konca sa pohybuje opačným smerom, teda na západ.

Po klepnutí na tlačidlo „Tap to Stop“ sa indikátor priebehu opäť nastaví na počiatočnú pozíciu.

Záver

Tento článok ukázal použitie indikátora priebehu v Tkinter GUI. Jednoducho sme použili objekty triedy Tkinter na volanie rôznych widgetov, aby bolo GUI Pythonu interaktívnejšie. V našich príkladoch sme diskutovali o použití určitých a neurčitých ukazovateľov pokroku. Dúfame, že sa vám ich implementácia bude páčiť.