Barra de progresso Tkinter

Barra De Progresso Tkinter



Você pode atualizar o cliente sobre o status de um processo demorado com um widget de barra de progresso. O objetivo do widget é fornecer ao usuário a confiança de que algo está ocorrendo. Possui dois modos diferentes de operação. Quando em modo determinado, o widget exibe uma indicação que viaja em uma direção predeterminada. O widget é movido em um estado indeterminado para permitir ao cliente uma impressão de que algo está acontecendo. O sinal oscila entre as extremidades do widget ao longo deste estilo. O uso de barras de progresso determinado e indeterminado em Python será abordado neste tutorial.

Vamos começar com a configuração de uma biblioteca Tkinter do Python. Após o lançamento bem-sucedido do terminal, tente a seguinte consulta para configurar o pacote Tkinter. Certifique-se de ter o Python já instalado antes de usar esta instrução.

$ sudo apt install python3-tk







Exemplo 1

Vamos começar com nosso primeiro exemplo de Python para usar o módulo Tkinter para criar uma barra de progresso determinada em sua GUI. Assim, criamos um novo arquivo Python chamado “new.py” e adicionamos o seguinte código. Iniciamos este código importando todos os objetos filhos da biblioteca Tkinter do Python na primeira linha. Depois disso, importamos o objeto da classe “ttk” do módulo Tkinter na segunda linha de código.



O construtor da classe Tk() foi chamado e salvou seu objeto na variável “t”. A função “title” foi alcançada com a variável de objeto “t” para criar um título para a GUI. O tamanho de uma janela GUI Tkinter foi definido para “300×200” através da função geometry(). A barra de progresso seria gerada por uma função definida pelo usuário “Pbar()”. Vamos dar uma olhada nesta função na última parte deste artigo.



Criamos uma variável “p” no 8 º linha deste código Python que vem usando a função Progressbar() através do objeto de classe “ttk” para criar uma barra de progresso na tela GUI. O objeto “t” foi passado para ele enquanto sua orientação foi definida como Horizontal, seu comprimento definido como 400 e seu modo é determinado, ou seja, ele estará se movendo apenas em uma direção específica. O preenchimento do eixo “y” foi definido para 30 pelo uso da função “pack()” para esta barra de progresso.





Após isso, criamos um novo botão “b” usando a função Button() e passando para ele o objeto “t”, algum texto e o comando a ser executado após clicar no botão, ou seja, função chamada a função “Pbar”. A função Pbar() estaria incrementando o valor da barra de progresso “p” em dez e retornando para a variável “b”. O preenchimento do eixo “y” para o botão foi definido como “10” usando a função pack(), e a função mainloop() está aqui para fazer o loop de toda a execução.



Após completar um código Python, nós o salvamos e o executamos no console através da consulta “python3” seguida do nome de um arquivo “new.py”:

$ python3 new.py

Ele lançou o Tkinter GUI do Python com o título “Progress Bar” na tela do nosso console. Na imagem a seguir, há apenas uma barra de progresso sem processamento. Você precisa tocar no botão primeiro.

Depois de tocar no botão “Toque aqui!”, a barra de progresso azul foi mostrada da seguinte forma:

Após três cliques consecutivos, recebemos o seguinte progresso sem movimento:

Depois de chegar ao final da barra de progresso, não podemos avançar mais, ou seja, determinar a barra de progresso.

Exemplo 2

Vamos ver como criar uma barra de progresso indeterminada que pode se mover para trás e para frente dentro da área de progresso usando o módulo Tkinter GUI Python. Então, começamos este código Python importando o módulo Tkinter como “tk” e o objeto ttk da classe “ttk”. O objeto tk foi descartado para obter o resultado do construtor “Tk()” e salvo na variável “t”.



A variável “t” foi usada com a função title() para adicionar um título para GUI junto com a função geometry() para determinar o tamanho de uma janela GUI a ser exibida. A função grid() foi chamada com a variável “t” para organizar a GUI em um formato tabular.

Depois disso, usamos a variável “p” para criar uma barra de progresso através da função Progressbar() do objeto da classe ttk com a mesma variável “t”, orientação horizontal, 300 comprimentos e modo indeterminado. A barra de progresso foi organizada de forma tabular através da função “grid()” que vem utilizando o preenchimento específico para os eixos “x” e “y”. Criamos dois botões, “s” e “e”, para iniciar o movimento da barra de progresso, finalizá-la e movê-la para frente e para trás.







O parâmetro sticky da função grid() para ambos os botões define a direção, ou seja, leste e oeste. Os comandos, “iniciar” e “parar”, foram definidos para ambos os botões no 9 º e 11 º linha. Com a execução da função mainloop(), nosso programa está completo e pronto para uso após salvá-lo.





A execução ocorreu de forma semelhante.





$ python3 new.py

Na GUI iniciada, a seguinte tela foi apresentada:



Depois de pressionar o botão “Toque para iniciar”, a barra de progresso começou a avançar.

Depois de chegar ao final, ele se move na direção oposta, ou seja, oeste.

Uma vez feito o toque no botão “Toque para parar”, a barra de progresso foi definida na posição inicial novamente.

Conclusão

Este artigo mostrou o uso da barra de progresso na GUI do Tkinter. Nós simplesmente utilizamos os objetos da classe Tkinter para chamar diferentes widgets para tornar a GUI do Python mais interativa. Discutimos o uso de barras de progresso determinadas e indeterminadas em nossos exemplos. Esperamos que você goste de implementá-los.