Pasek postępu Tkintera

Pasek Postepu Tkintera



Możesz zaktualizować klienta o statusie długiego procesu za pomocą widżetu paska postępu. Celem widżetu jest zapewnienie użytkownikowi pewności, że coś się dzieje. Posiada dwa różne tryby działania. W trybie określania widget wyświetla wskazanie, które porusza się w określonym kierunku. Widget jest przesuwany w nieokreślonym stanie, aby klient miał wrażenie, że coś się dzieje. Sygnał oscyluje tam i z powrotem między końcami widżetu w tym stylu. Korzystanie z określonych i nieokreślonych pasków postępu w Pythonie zostanie omówione w tym samouczku.

Zacznijmy od konfiguracji biblioteki Tkinter w Pythonie. Po pomyślnym uruchomieniu terminala wypróbuj następujące zapytanie, aby skonfigurować pakiet Tkinter. Upewnij się, że masz już zainstalowany Python przed użyciem tej instrukcji.

$ sudo apt zainstaluj python3-tk







Przykład 1

Zacznijmy od naszego pierwszego przykładu Pythona, w którym używamy modułu Tkinter do tworzenia określonego paska postępu w jego GUI. W ten sposób stworzyliśmy nowy plik Pythona o nazwie „new.py” i dodaliśmy następujący kod. Rozpoczęliśmy ten kod od zaimportowania wszystkich obiektów podrzędnych z biblioteki Tkinter w Pythonie w pierwszym wierszu. Następnie zaimportowaliśmy obiekt klasy „ttk” z modułu Tkinter w drugiej linii kodu.



Konstruktor klasy Tk() został wywołany i zapisał swój obiekt w zmiennej „t”. Funkcja „title” została osiągnięta ze zmienną obiektu „t”, aby utworzyć tytuł dla GUI. Rozmiar okna GUI Tkinter został ustawiony na „300×200” za pomocą funkcji geometry(). Pasek postępu zostanie wygenerowany przez zdefiniowaną przez użytkownika funkcję „Pbar()”. Przyjrzymy się tej funkcji w dalszej części tego artykułu.



Stworzyliśmy zmienną „p” na 8 ten wiersz tego kodu Pythona, który używał funkcji Progressbar() za pośrednictwem obiektu klasy „ttk”, aby utworzyć pasek postępu na ekranie GUI. Obiekt „t” został mu przekazany, gdy jego orientacja została ustawiona na poziomą, jego długość ustawiono na 400, a jego tryb jest określony, tj. będzie się poruszał tylko w określonym kierunku. Dopełnienie osi „y” zostało ustawione na 30 za pomocą funkcji „pack()” dla tego paska postępu.





Następnie tworzyliśmy nowy przycisk „b” za pomocą funkcji Button() i przekazując mu obiekt „t”, jakiś tekst i polecenie do wykonania po kliknięciu przycisku, czyli funkcję o nazwie funkcja „Pbar”. Funkcja Pbar() zwiększałaby wartość paska postępu „p” o dziesięć i powracała do zmiennej „b”. Dopełnienie osi „y” dla przycisku zostało ustawione na „10” za pomocą funkcji pack(), a funkcja mainloop() służy do zapętlenia całego wykonania.



Po ukończeniu kodu w Pythonie zapisaliśmy go i wykonaliśmy w konsoli za pomocą zapytania „python3”, a następnie nazwy pliku „new.py”:

$ python3 nowy.py

Uruchomiła GUI Tkinter w Pythonie z tytułem „Pasek postępu” na ekranie naszej konsoli. Na poniższym obrazku jest tylko pasek postępu bez przetwarzania. Musisz najpierw dotknąć przycisku.

Po dotknięciu przycisku „Dotknij tutaj!” niebieski pasek postępu wyświetla się w następujący sposób:

Po trzech kolejnych kliknięciach otrzymaliśmy następujący postęp bez ruchu:

Po dojściu do końca paska postępu nie możemy ruszyć dalej, czyli określić pasek postępu.

Przykład 2

Przyjrzyjmy się tworzeniu nieokreślonego paska postępu, który może poruszać się do tyłu i do przodu w obszarze postępu za pomocą modułu Tkinter GUI Python. Tak więc rozpoczęliśmy ten kod Pythona, importując moduł Tkinter jako „tk” i obiekt ttk z klasy „ttk”. Obiekt tk został odrzucony, aby uzyskać wynik konstruktora „Tk()” i zapisany w zmiennej „t”.



Zmienna „t” została użyta z funkcją title() w celu dodania tytułu do GUI obok funkcji geometry() w celu określenia rozmiaru wyświetlanego okna GUI. Funkcja grid() została wywołana ze zmienną „t”, aby zorganizować GUI w formacie tabelarycznym.

Następnie używaliśmy zmiennej „p” do tworzenia paska postępu za pomocą funkcji Progressbar() obiektu klasy ttk z tą samą zmienną „t”, orientacją poziomą, 300 długościami i trybem nieokreślonym. Pasek postępu został zorganizowany w sposób tabelaryczny za pomocą funkcji „grid()”, która używa specjalnego wypełnienia dla osi „x” i „y”. Stworzyliśmy dwa przyciski, „s” i „e”, do rozpoczynania ruchu paska postępu, kończenia go i przesuwania w przód iw tył.







Przyklejony parametr funkcji grid() dla obu przycisków określa kierunek, tj. Wschód i Zachód. Polecenia „start” i „stop” zostały ustawione dla obu przycisków na 9 ten i 11 ten linia. Wraz z wykonaniem funkcji mainloop() nasz program został ukończony i po zapisaniu gotowy do użycia.





Egzekucja odbyła się w podobny sposób.





$ python3 nowy.py

Po uruchomieniu GUI zaprezentowany został następujący ekran:



Po naciśnięciu przycisku „Dotknij, aby rozpocząć”, pasek postępu zaczął przesuwać się do przodu.

Po dotarciu do końca porusza się w przeciwnym kierunku, czyli na zachód.

Po zakończeniu stukania przycisku „Dotknij, aby zatrzymać”, pasek postępu został ponownie ustawiony w pozycji początkowej.

Wniosek

W tym artykule pokazano użycie paska postępu w GUI Tkinter. Po prostu wykorzystaliśmy obiekty klasy Tkinter do wywoływania różnych widżetów, aby uczynić interfejs GUI Pythona bardziej interaktywnym. W naszych przykładach omówiliśmy użycie określonych i nieokreślonych pasków postępu. Mamy nadzieję, że spodoba Ci się ich wdrażanie.