Bara de progres Tkinter

Bara De Progres Tkinter



Puteți actualiza clientul cu privire la starea unui proces îndelungat cu un widget bară de progres. Scopul widget-ului este de a oferi utilizatorului încredere că se întâmplă ceva. Are două moduri diferite de funcționare. Când se află în modul determinat, widget-ul afișează o indicație care se deplasează într-o direcție predeterminată. Widgetul este mutat într-o stare nedeterminată pentru a oferi clientului impresia că se întâmplă ceva. Semnalul oscilează înainte și înapoi între extremitățile widget-ului în acest stil. Utilizarea barelor de progres determinate și nedeterminate în Python va fi acoperită în acest tutorial.

Să începem cu configurarea unei biblioteci Tkinter din Python. După lansarea cu succes a terminalului, încercați următoarea interogare pentru a configura pachetul Tkinter. Asigurați-vă că aveți deja instalat Python înainte de a utiliza această instrucțiune.

$ sudo apt install python3-tk







Exemplul 1

Să începem cu primul nostru exemplu de Python pentru a folosi modulul Tkinter pentru a crea o bară de progres determinată în GUI-ul său. Astfel, am creat un nou fișier Python numit „new.py” și am adăugat următorul cod. Am început acest cod importând toate obiectele copil din biblioteca Tkinter din Python la prima linie. După aceea, am importat obiectul clasei „ttk” din modulul Tkinter în a doua linie de cod.



Constructorul clasei Tk() a fost apelat și și-a salvat obiectul în variabila „t”. Funcția „titlu” a fost atinsă cu variabila obiect „t” pentru a crea un titlu pentru GUI. Dimensiunea unei ferestre GUI Tkinter a fost setată la „300×200” prin intermediul funcției geometry(). Bara de progres va fi generată de o funcție definită de utilizator „Pbar()”. Vom arunca o privire asupra acestei funcții în ultima parte a acestui articol.



Am creat o variabilă „p” la 8 th linia acestui cod Python care a folosit funcția Progressbar() prin intermediul obiectului de clasă „ttk” pentru a crea o bară de progres pe ecranul GUI. Obiectul „t” i-a fost transmis în timp ce orientarea lui a fost setată la Orizontală, lungimea sa setată la 400 și modul său este determinat, adică se va mișca doar într-o anumită direcție. Umplutura axei „y” a fost setată la 30 prin utilizarea funcției „pack()” pentru această bară de progres.





După aceasta, am creat un nou buton „b” prin utilizarea funcției Button() și i-am transmis obiectul „t”, ceva text și comanda care urmează să fie executată după ce facem clic pe butonul, adică funcția numită funcția „Pbar”. Funcția Pbar() ar crește valoarea barei de progres „p” cu zece și revine la variabila „b”. Umplutura axei „y” pentru butonul a fost setată la „10” folosind funcția pack(), iar funcția mainloop() este aici pentru a scoate în buclă întreaga execuție.



După ce am completat un cod Python, l-am salvat și l-am executat pe consolă prin interogarea „python3” urmată de numele unui fișier „new.py”:

$ python3 new.py

A lansat interfața grafică Tkinter din Python cu titlul „Bara de progres” pe ecranul consolei noastre. În imaginea următoare, există doar o bară de progres fără procesare. Mai întâi trebuie să atingeți butonul.

După ce atingeți butonul „Atingeți aici!”, bara albastră de progres a fost afișată după cum urmează:

După trei clicuri consecutive, am primit următorul progres fără nicio mișcare:

După ce ajungem la sfârșitul barei de progres, nu ne putem deplasa mai departe, adică bara de progres determinată.

Exemplul 2

Să ne uităm la crearea unei bare de progres nedeterminată care se poate deplasa înapoi și înainte în zona de progres folosind modulul Tkinter GUI Python. Deci, am început acest cod Python importând modulul Tkinter ca „tk” și obiectul ttk din clasa „ttk”. Obiectul tk a fost eliminat pentru a obține rezultatul constructorului „Tk()” și salvat în variabila „t”.



Variabila „t” a fost folosită cu funcția title() pentru a adăuga un titlu pentru GUI alături de funcția geometry() pentru a determina dimensiunea unei ferestre GUI care urmează să fie afișată. Funcția grid() a fost apelată cu variabila „t” pentru a organiza GUI într-un format tabelar.

După aceea, am folosit variabila „p” pentru a crea o bară de progres prin funcția Progressbar() a obiectului de clasă ttk cu aceeași variabilă „t”, orientare orizontală, 300 de lungimi și modul nedeterminat. Bara de progres a fost organizată într-un mod tabelar prin intermediul funcției „grid()” care a folosit padding-ul specific pentru axa „x” și „y”. Am creat două butoane, „s” și „e”, pentru a începe mișcarea barei de progres, a o încheia și a o muta înainte și înapoi.







Parametrul sticky al funcției grid() pentru ambele butoane definește direcția, adică est și vest. Comenzile, „pornire” și „oprire”, au fost setate pentru ambele butoane la 9 th și 11 th linia. Odată cu execuția funcției mainloop(), programul nostru a fost finalizat și gata de utilizare după salvare.





Execuția a avut loc într-un mod similar.





$ python3 new.py

La lansarea GUI, a fost prezentat următorul ecran:



După apăsarea butonului „Atingeți pentru a începe”, bara de progres a început să avanseze.

După ce ajunge la capăt, se deplasează în direcția opusă, adică în vest.

Odată ce ați terminat de apăsat butonul „Atingeți pentru a opri”, bara de progres a fost setată din nou în poziția inițială.

Concluzie

Acest articol a arătat utilizarea barei de progres în GUI Tkinter. Pur și simplu am folosit obiectele clasei Tkinter pentru a apela diferite widget-uri pentru a face GUI-ul Python mai interactiv. Am discutat despre utilizarea barelor de progres determinate și nedeterminate în exemplele noastre. Sperăm să vă bucurați de implementarea acestora.