Barra de Progresso em Python

Barra de Progresso em Python

Neste será mostrado como fazer barra de progresso em Python. Barras de progressão são uma maneira fácil de visualizar o status de uma tarefa.

No vídeo a seguir é mostrado o código para fazer uma barra de progresso em Python.

Código

O código utilizado no vídeo é mostrado a seguir:

from tkinter import *
from tkinter.ttk import *
import time

root = Tk()
root.title("Barra de Progresso")
root.geometry("600x500") #Tamanho da janela que será aberta

def soma():
    barra['value'] += 5

def sub():
    barra['value'] -= 5

barra = Progressbar (root, orient = HORIZONTAL, mode = 'determinate')
barra.pack()

bt1 = Button (root, text = '+', command = soma)
bt1.pack()

bt2 = Button (root, text = '-', command = sub)
bt2.pack()

root.mainloop()

O código cria uma barra de progresso e duas teclas que são utilizadas para ajustar os valores da barra de progresso. Abaixo é mostrado o resultado do código anterior.

Janela com barra de progresso em Python

O modo apresentado para barra de progresso é modo ‘determinate’, mas também é possível configurar para o modo ‘indeterminate’. Para isso basta mudar a seguinte linha código:

barra = Progressbar (root, orient = HORIZONTAL, mode = 'indeterminate')
barra.pack()

Com isso a barra de progresso não vai mais ficar contínua, mas sim uma barra parecida com um slider, como mostrado abaixo:

Barra no modo indeterminate

Também é possível alterar outros atributos do barra, como largura da barra de progresso, para isso podemos alterar a linha de código como mostrado abaixo:

barra = Progressbar (root, orient = HORIZONTAL, length = 150, mode = 'determinate')
barra.pack()

Abaixo é mostrado o resultado da barra com um comprimento maior.

Barra com animação

Além disso, podemos modificar os dois métodos que são utilizados para incrementar e decrementar a barra de progresso para criar uma animação mais agradável para o usuário, de forma que barra não pule de forma seca.

Para isso podemos escrever as duas funções como segue abaixo:

def soma():
    for i in range(5):
        root.update_idletasks()
        barra['value'] += 1
        time.sleep(0.1)

def sub():
    for i in range(5):
        root.update_idletasks()
        barra['value'] -= 1
        time.sleep(0.1)

Abaixo é mostrado como ficou:

Conclusão

Neste post vimos como fazer barra de progresso em Python. O código pode ser aprimorado e adicionado novos componentes.

Isso é tudo pessoal, e até o próximo post.

Documentação do Python para o Tkinterttk:

https://docs.python.org/3/library/tkinter.ttk.html