Помогите починить Progressbar
Progressbar не останавливается после того, как дошел до конца, а идет на новый круг.
Не понимаю как это исправить?
import customtkinter as ctk
import tkinter as tk
from tkinter import ttk
import customtkinter as CTk
from PIL import Image
class CTkProgressbar(ctk.CTkFrame):
def __init__(self, master, *args, **kwargs):
super().__init__(master, *args, **kwargs)
self._value = tk.DoubleVar()
self._value.set(0)
self.progressbar = ttk.Progressbar(self, variable=self._value, maximum=100.0, mode='determinate')
self.progressbar.pack(side='left', fill='both', expand=True, padx=10)
def start(self):
self.progressbar.start()
def stop(self):
self.progressbar.stop()
def set(self, value):
self._value.set(value)
class App(ctk.CTk):
def __init__(self):
super().__init__()
self.geometry("500x550")
self.title("MyApp")
self.resizable(width=True, height=True)
ctk.set_appearance_mode("dark") # Modes: "System" (standard), "Dark", "Light"
ctk.set_default_color_theme("blue") # Themes: "blue" (standard), "green", "dark-blue")
self.numbers = ['X', 'X1.02', 'X4.68', 'X2.17', 'X26.56', 'X1.00','X2.86', 'X1.26', 'X17.11']
self.current_index = 0
self.frame_1 = ctk.CTkFrame(master=self)
self.frame_1.pack(pady=10, padx=10, fill="both", ipadx=10, ipady=10)
custom_font = ("Helvetica", 60, "bold")
self.label_1 = CTk.CTkLabel(master=self.frame_1, text=str(self.numbers[self.current_index]), justify=CTk.LEFT,
font=custom_font)
self.label_1.pack(pady=10, padx=10)
self.progressbar_1 = CTkProgressbar(self.frame_1)
self.progressbar_1.pack(pady=10, fill='both')
self.button_1 = ctk.CTkButton(master=self.frame_1, text='Кнопка', command=self.button_callback)
self.button_1.pack(pady=30, padx=10, ipadx=10, ipady=10)
self.logo = CTk.CTkImage(dark_image=Image.open("fly.png"), size=(200, 200))
self.logo_label = CTk.CTkLabel(master=self, text='', image=self.logo)
self.logo_label.pack(ipady=10, ipadx=10, expand=1)
self.lucky_jet_label = CTk.CTkLabel(master=self, text=" ", font=("Aria", 40, "bold"))
self.lucky_jet_label.pack(pady=1)
def button_callback(self):
self.progressbar_1.start()
self.after(6021, lambda: self.update_label())
def update_label(self):
self.progressbar_1.stop()
self.current_index += 1
if self.current_index >= len(self.numbers):
self.current_index = 0
number = self.numbers[self.current_index]
self.label_1.configure(text=str(number))
if __name__ == "__main__":
app = App()
app.mainloop()
Источник: Stack Overflow на русском