Python Progressbar

Виджет Progressbar предназначен для отображения хода выполнения какого-либо процесса. Основные параметры Progressbar:

  • value: текущее значение виджета (тип float)

  • maximum: максимальное значение (тип float)

  • variable: определяет переменную IntVar/DoublerVar, которая хранит текущее значение виджета

  • mode: определяет режим, принимает значения “determinate” (конечный) и “indeterminate” (бесконечный)

  • orient: определяет ориентацию виджета, принимает значения “vertical” (вертикальый) и “horizontal” (горизонтальный)

  • length: длина виджета (в пиксеоах)

Перед использованием этого виджета необходимо нго проинсталлировать в системе:

 

Определим вертикальный и горизонтальный Progressbar:

Progressbar в Tkinter и Python

С помощью параметра variable можно привязать значение прогрессбара к переменной типа IntVar или DoublerVar:

В данном случае значение прогрессбара привязано к переменной value_var, значение которой выводит метка label:

Привязка Progressbar к IntVar в Tkinter и Python

Методы Progressbar

Некоторые важные методы виджета:

  • start([interval]): запускает перемещение индикатора через определенные интервалы времени. Каждый раз, когда пройдет очередной интервал, индикатор смещается на одно деление вперед. По умолчанию интервал равен 50 миллисекунд

  • step([delta]): увеличивает значение индикатора на значение из параметра delta (по умолчанию равен 1.0)

  • stop(): останавливает перемещение индикатора

Применим методы:

В данном случае по нажатию на кнопку start_btn запускаем перемещение индикатора – через каждые 1000 миллисекунд (1 секунду) индикатор перемещается на одно деление вперед. По нажатию на кнопку stop_btn останавливаем движение индекатора.

Запуск Progressbar в приложении на Tkinter и Python

Режим прогрессбара

Параметр mode отвечает за установку режима прогрессбара и может принимать два значения:

  • "indeterminate": прогрессбар показывает индикатор, который перемещается без остановки между двумя краями виджета, то есть фактически бесконечно продолжает перемещение. Данный режим подходит, когда сложно расчитать, насколько должен перемещаться индикатор при отображении хода некоторой задачи

  • "determinate": индикатор прогрессбара проходит от начала до конца и затем завершает перемещение. Значение по умолчанию. Подходит для отображения таких процессов, где можно подсчитать перемещение индикатора. Например, копируется 100 файлов, и, если параметр maximum равен 100, при копирования одного файла перемещаем индикатор на одно деление вперед.

Применение режима “determinate” по сути уже рассматривалось выше, так как это режим по умолчанию. Посмотрим на пример применения режима “indeterminate”:

По нажатию на кнопку start_btn также запускается процесс. Когда индикатор дойдет до конца, он начинает обратное движение:

indeterminate mode в Progressbar в Tkinter и Python

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *