Tkinter Progress Bar

Tkinter Progress Bar



Egy folyamatjelző widget segítségével frissítheti a klienst egy hosszadalmas folyamat állapotáról. A widget célja, hogy a felhasználó magabiztossá tegye, hogy valami történik. Két különböző működési módja van. Határozott módban a widget jelzést jelenít meg, amely előre meghatározott irányba halad. A widget határozatlan állapotba kerül, hogy az ügyfélnek olyan benyomást keltsen, mintha valami történik. A jel ide-oda oszcillál a widget végei között ebben a stílusban. Ez az oktatóanyag a határozott és határozatlan folyamatjelző sávok Pythonban való használatát ismerteti.

Kezdjük a Python Tkinter-könyvtárának beállításával. A terminál sikeres elindítása után próbálkozzon a következő lekérdezéssel a Tkinter csomag konfigurálásához. Az utasítás használata előtt győződjön meg arról, hogy a Python már telepítve van.

$ sudo apt install python3-tk







1. példa

Kezdjük a Python első példájával, amely a Tkinter modult használja egy meghatározott folyamatjelző létrehozására a grafikus felhasználói felületén. Így létrehoztunk egy új Python-fájlt „new.py” néven, és hozzáadtuk a következő kódot. Ezt a kódot úgy indítottuk el, hogy az összes gyermek objektumot importáltuk a Python Tkinter könyvtárából az első sorban. Ezt követően importáltuk a „ttk” osztály objektumot a Tkinter modulból a második kódsorban.



A Tk() osztálykonstruktor meghívásra került, és elmentette az objektumát a „t” változóba. A „t” objektumváltozóval elértük a „title” függvényt, amely címet hoz létre a grafikus felhasználói felület számára. A GUI Tkinter ablak mérete „300×200”-ra lett beállítva a geometria() függvényen keresztül. A folyamatjelző sávot egy „Pbar()” felhasználó által definiált függvény hozza létre. Ezt a funkciót a cikk második részében fogjuk megvizsgálni.



Létrehoztunk egy „p” változót a 8-asnál th Ennek a Python-kódnak a sorában, amely a Progressbar() függvényt használja a „ttk” osztály objektumon keresztül egy folyamatjelző sáv létrehozásához a grafikus felhasználói felület képernyőjén. A „t” objektumot átadtuk neki, miközben a tájolása vízszintesre, a hossza 400-ra van állítva, módja pedig meghatározott, azaz csak egy adott irányba fog mozogni. Az „y” tengely kitöltése 30-ra lett állítva a „pack()” függvény használatával ehhez a folyamatjelzőhöz.





Ezt követően a Button() függvény használatával létrehoztunk egy új „b” gombot, és átadtuk neki a „t” objektumot, néhány szöveget, valamint a gombra kattintás után végrehajtandó parancsot, azaz a nevezett függvényt. a „Pbar” funkciót. A Pbar() függvény a „p” folyamatjelző sáv értékét tízzel növelné, és visszatérne a „b” változóhoz. A gomb „y” tengelyének kitöltése „10”-re lett állítva a pack() függvény használatával, a mainloop() függvény pedig a teljes végrehajtás hurkolására szolgál.



Egy Python-kód kitöltése után elmentettük és végrehajtottuk a konzolon a „python3” lekérdezéssel, majd a „new.py” fájl nevével:

$ python3 new.py

Elindította a Python Tkinter grafikus felhasználói felületét „Progress Bar” címmel a konzolunk képernyőjén. A következő képen csak egy folyamatjelző látható feldolgozás nélkül. Először meg kell érintenie a gombot.

A „Tap here!” gomb megérintése után a kék folyamatjelző sáv a következőképpen jelenik meg:

Három egymást követő kattintás után a következő haladást kaptuk mozgás nélkül:

Miután elértük a folyamatjelző sáv végét, nem tudunk továbblépni, azaz határozott folyamatjelző.

2. példa

Nézzünk meg egy határozatlan folyamatjelző sáv létrehozását, amely előre-hátra mozoghat a folyamatterületen belül a Tkinter GUI Python modul segítségével. Tehát ezt a Python-kódot úgy indítottuk el, hogy importáltuk a Tkinter modult 'tk' néven és a ttk objektumot a 'ttk' osztályból. A tk objektumot kidobtuk, hogy megkapjuk a „Tk()” konstruktor eredményét, és elmentve a „t” változóba.



A „t” változót a title() függvénnyel együtt használták a grafikus felhasználói felület címének hozzáadására a geometry() függvény mellett, hogy meghatározzák a megjelenítendő grafikus felületi ablak méretét. A grid() függvényt a „t” változóval hívták meg a grafikus felhasználói felület táblázatos formátumba rendezéséhez.

Ezt követően a „p” változót használva folyamatjelző sávot hoztunk létre a ttk osztály objektum Progressbar() függvényén keresztül, ugyanazzal a „t” változóval, vízszintes tájolással, 300 hosszúsággal és határozatlan móddal. A folyamatjelző sáv táblázatos formában van megszervezve a „grid()” függvényen keresztül, amely az „x” és „y” tengelyek speciális kitöltését használta. Létrehoztunk két gombot, az „s” és „e” gombot a folyamatjelző sáv mozgásának elindításához, befejezéséhez és ide-oda mozgatásához.







A grid() függvény ragadós paramétere mindkét gombnál meghatározza az irányt, azaz Kelet és Nyugat. A „start” és „stop” parancsok mindkét gombhoz be vannak állítva a 9-esnél th és 11 th vonal. A mainloop() függvény végrehajtásával programunk elkészült és mentés után használatra kész.





A végrehajtás hasonló módon történt.





$ python3 new.py

A GUI elindításakor a következő képernyő jelenik meg:



A „Tap to Start” gomb megnyomása után a folyamatjelző sáv előremozdult.

Miután elérte a végét, az ellenkező irányba, azaz Nyugat felé mozog.

Miután megérinti a „Tap to Stop” gombot, a folyamatjelző sáv ismét a kezdeti pozícióba került.

Következtetés

Ez a cikk bemutatta a folyamatjelző sáv használatát a Tkinter GUI-ban. Egyszerűen a Tkinter osztály objektumait használtuk fel különböző widgetek meghívására, hogy interaktívabbá tegyük a Python GUI-t. Példáinkban a határozott és határozatlan folyamatjelző sávok használatát tárgyaltuk. Reméljük, élvezni fogja ezek megvalósítását.