Podczas pracy z GUIS często jest to świetna opcja zaprezentowania ilości procesu wykonanego w formie paska postępu. Ponieważ Tkinter jest biblioteką Python budującą GUI, zapewnia wbudowaną metodę łatwego budowania paska postępu. Ten przewodnik pokaże, jak nie tylko zbudować pasek postępu, ale także jak korzystać z dwóch różnych trybów i zmienić wartość paska postępu.
Jak zbudować pasek postępu w Python Tkinter?
Musisz zaimportować pakiet „TTK” i użyć jego metody ProgressBar ().
progvar = ttk.ProgressBar (framevar, orienta, długość, tryb)
W składni metody ProgressBar ():
Zbudujmy prosty pasek postępu w Tkinter, który postępuje o 10% po naciśnięciu przycisku za pomocą następującego kodu:
#Start poprzez importowanie bibliotek tkinter
Z Tkinter Import *
Z Tkinter Import TTK
#Po imporcie utwórz ramkę za pomocą metody TK ()
ramka = tk ()
rama.Tytuł („Linuxhint - Postępowy pasek”)
rama.Geometria („400x200”)
okno = ramka (ramka)
#Method, aby zwiększyć wartość postępu
def Pbar ():
progbar [„wartość”]+= 10
#Build ProgressBar
progbar = ttk.ProgressBar (ramka, orienta = pozioma, długość = 400, tryb = „determinate”)
Progbar.pakiet (Pady = 40)
#Build przycisk
btn = przycisk (ramka, text = "kliknij tutaj!", Command = PBAR)
Btn.pakiet (Pady = 10)
rama.główna pętla()
W tym kodowym fragmencie:
Kiedy ten fragment kodu jest wykonywany, tworzy następujące okno Tkintera na komputerze:
Jak widać w wyjściowym GIF, utworzono pasek postępu i postępował po kliknięciu przycisku. Jednak po tym, jak pasek postępu naciśnie maksymalną długość, nie zachodzi dalsza zmiana po naciśnięciu przycisku.
Jak sprawić, by Bar Progress Bar w tę iz powrotem w Tkinter Python?
Aby pasek postępu poszedł tam iz powrotem po naciśnięciu przycisku, musisz użyć „nieokreślonego” paska postępu. Z „nieokreślonym” paskiem postępu, celem nie jest pokazanie procentu pracy wykonanej przez proces. Raczej celem jest jedynie prezentacja, że akcja/zdarzenie jest w trakcie.
Aby utworzyć nieokreślony pasek postępu, po prostu zmień argument trybu w metodzie ProgressBar (), aby „nieokreślić”:
progbar = ttk.ProgressBar (ramka, orienta = pozioma, długość = 400, tryb = „determinate”)
Umieść ten wiersz w poprzednim przykładzie, wykonaj program, a wytworzy on następujące okno Tkinter:
Jak widać w wyjściowym GIF, nieokreślony pasek postępu nie zatrzymał.
Jak zresetować pasek postępu w Python Tkinter?
Aby zresetować wartość paska postępu, po prostu użyj zmiennej paska postępu, aby uzyskać dostęp do atrybutu „Wartość” i ustaw jego wartość równą zero. Dobrą praktyką jest zresetowanie wartości paska postępu po naciśnięciu przycisku.
Aby to zademonstrować, weź ten zmodyfikowany kod z pierwszego przykładu:
Z Tkinter Import *
Z Tkinter Import TTK
#Po imporcie utwórz ramkę za pomocą metody TK ()
ramka = tk ()
rama.Tytuł („Linuxhint - Postępowy pasek”)
rama.Geometria („400x200”)
okno = ramka (ramka)
#Method, aby zwiększyć/zresetować wartość postępu
def Pbar ():
progbar [„wartość”]+= 10
def ResetPbar ():
progbar [„wartość”] = 0
#Build ProgressBar
progbar = ttk.ProgressBar (ramka, orienta = pozioma, długość = 400, tryb = „nieokreślony”)
Progbar.pakiet (Pady = 40)
#Build przyciski
btn = przycisk (ramka, text = "postęp", command = PBAR)
Btn.pakiet (Pady = 10)
btn2 = przycisk (ramka, text = "reset", command = resetPBar).pakiet (padx = 10)
rama.główna pętla()
Po wykonaniu tego kodu powoduje on następujące zachowanie okna Tkintera na komputerze:
Możesz zauważyć, że gdy tylko naciśnię przycisk „resetowania”, postęp jest resetowany do 0.
Wniosek
Paski postępów to świetny sposób na informowanie użytkownika końcowego o procentach ukończenia działania lub statusu wykonania. Aby zbudować pasek postępu w Tkinter, użyj metody Postępu Postępu () Pakiet „TTK” i przejść wartości dla ramki, orientacji, długości i trybu. Aby zmienić wartość postępu paska postępu, uzyskaj dostęp do jego atrybutu „wartość” i zmień jego wartość zgodnie z wymogami.