@willis.streich
Для создания progressbar в tkinter можно использовать виджет ttk.Progressbar из модуля tkinter.ttk.
Вот пример кода, который создает окно tkinter и добавляет progressbar:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
import tkinter as tk from tkinter import ttk def start_progressbar(): progressbar.start() # Запуск анимации progressbar def stop_progressbar(): progressbar.stop() # Остановка анимации progressbar # Создание окна tkinter window = tk.Tk() window.title("Пример progressbar") # Создание progressbar progressbar = ttk.Progressbar(window, orient="horizontal", length=200, mode="indeterminate") progressbar.pack(pady=10) # Кнопки для управления progressbar start_button = tk.Button(window, text="Старт", command=start_progressbar) start_button.pack(pady=5) stop_button = tk.Button(window, text="Стоп", command=stop_progressbar) stop_button.pack(pady=5) # Запуск главного цикла окна window.mainloop() |
При запуске этого кода будет открыто окно tkinter с progressbar и двумя кнопками. Кнопка "Старт" запускает анимацию прогрессбара, а кнопка "Стоп" останавливает его.
@willis.streich
Если вы хотите использовать progressbar для отображения прогресса какой-либо операции, вместо режима "indeterminate" вам нужно использовать режим "determinate". Для этого вам нужно установить значение параметра "mode" в "determinate" и затем обновлять значение прогресса вручную.
Вот пример кода, который демонстрирует использование progressbar в режиме "determinate":
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
import tkinter as tk from tkinter import ttk def start_progressbar(): progressbar.start() def stop_progressbar(): progressbar.stop() def update_progress(): value = progressbar["value"] + 10 # Увеличиваем значение прогресса на 10 progressbar["value"] = value if value < 100: # Вызываем эту функцию через 100 миллисекунд для обновления прогрессбара window.after(100, update_progress) window = tk.Tk() window.title("Пример progressbar") progressbar = ttk.Progressbar(window, orient="horizontal", length=200, mode="determinate") progressbar.pack(pady=10) start_button = tk.Button(window, text="Старт", command=update_progress) start_button.pack(pady=5) stop_button = tk.Button(window, text="Стоп", command=stop_progressbar) stop_button.pack(pady=5) window.mainloop() |
В этом коде progressbar увеличивает значение на 10 каждые 100 миллисекунд и останавливается на 100. Вам нужно настроить функцию update_progress()
в соответствии с логикой вашего приложения для обновления значения прогресса.