Barra de progresso tkinter

Barra de progresso tkinter

Ao trabalhar com GUIs, geralmente é uma ótima opção para mostrar a quantidade do processo realizado na forma de uma barra de progresso. Como o Tknter é uma biblioteca de construção da GUI, ele fornece um método integrado para construir uma barra de progresso facilmente. Este guia mostrará como não apenas para construir uma barra de progresso, mas também como usar dois modos diferentes e alterar o valor da barra de progresso.

Como construir uma barra de progresso em Tknter Python?

Você precisa importar o pacote “TTK” e usar seu método ProgressBar ().

progvar = ttk.ProgressBar (FrameVar, Oriente, Comprimento, Modo)

Na sintaxe do método ProgressBar ():

  • Progvar: É a variável que será usada para acessar os diferentes atributos da barra de progresso após sua criação
  • FrameVar: É a variável tknter tk, que é o quadro/painel em que o progresso seria exibido
  • orientar: Este argumento será usado para definir e definir a orientação da barra de progresso
  • comprimento: Este argumento será usado para definir e comprimento da barra de progresso
  • modo: O argumento do modo é usado para definir o modo como "determinado" ou "indeterminado"

Vamos construir uma simples barra de progresso em Tkinter, que progride em 10% após a pressão de um botão usando o seguinte código:

#Start Importando as bibliotecas Tkiner
da importação de tknter *
De importar tkter ttk
#AFter the Import, crie o quadro usando o método tk ()
quadro = tk ()
quadro.Título ("Linuxhint - Barra de Progresso")
quadro.Geometria ("400x200")
janela = quadro (quadro)
#Method para aumentar o valor do progresso
def Pbar ():
Progbar ['valor']+= 10
#Build ProgressBar
progbar = ttk.ProgressBar (quadro, Orient = horizontal, comprimento = 400, mode = "determinado")
Progbar.pacote (pady = 40)
Botão #Build
btn = botão (quadro, text = "Clique aqui!", Command = pBar)
btn.pacote (pady = 10)
quadro.MAINLOOP ()

Neste snippet de código:

  • Primeiro, importe o pacote "Tkinter" e também o pacote "TTK", que contém o método ProgressBar ()
  • Crie um quadro usando o método tk ()
  • Defina o método pBAR (), que usa a variável da barra de progresso "progbar" para acessar o atributo "valor" e aumenta em 10
  • Crie a variável "progbar" usando o método ProgressBar () e defina a orientação como horizontal e modo para determinar
  • Por fim, crie um botão que chama o método pBAR () para aumentar o valor da barra de progresso.

Quando esse trecho de código é executado, ele produz a seguinte janela Tkinnter em sua máquina:

Como você pode ver no GIF de saída, a barra de progresso foi criada e continuou progredindo com o clique do botão. No entanto, uma vez que a barra de progresso atinge o comprimento máximo, nenhuma alteração adicional ocorre ao pressionar o botão.

Como fazer o progresso, a barra vá e volta em Tkiner Python?

Para fazer com que a barra de progresso vá e volta à pressão do botão, você precisa usar a barra de progresso "indeterminada". Com uma barra de progresso "indeterminada", o objetivo não é mostrar a porcentagem de trabalho realizado pelo processo para o usuário. Em vez disso, o objetivo é apenas mostrar que uma ação/evento está em processo.

Para criar uma barra de progresso indeterminada, basta alterar o argumento do modo no método ProgressBar () para "indeterminado":

progbar = ttk.ProgressBar (quadro, Orient = horizontal, comprimento = 400, mode = "determinado")

Coloque esta linha no exemplo anterior, execute o programa e produzirá a seguinte janela Tknter:

Como você pode ver no GIF de saída, a barra de progresso indeterminada não parou na marca de 100%, mas começou a ir e voltar sobre os cliques do botão.

Como redefinir a barra de progresso em Tkiner Python?

Para redefinir o valor da barra de progresso, basta usar a variável da barra de progresso para acessar o atributo "valor" e defina seu valor igual a zero. Uma boa prática é redefinir o valor da barra de progresso após um botão pressionar.

Para demonstrar isso, pegue este código modificado do primeiro exemplo:

da importação de tknter *
De importar tkter ttk
#AFter the Import, crie o quadro usando o método tk ()
quadro = tk ()
quadro.Título ("Linuxhint - Barra de Progresso")
quadro.Geometria ("400x200")
janela = quadro (quadro)
#Method para aumentar/redefinir o valor do progresso
def Pbar ():
Progbar ['valor']+= 10
def ResetpBar ():
progbar ['valor'] = 0
#Build ProgressBar
progbar = ttk.ProgressBar (quadro, Orient = horizontal, comprimento = 400, mode = "indeterminado")
Progbar.pacote (pady = 40)
#Buttons Build
btn = botão (quadro, text = "progresso", comando = pBAR)
btn.pacote (pady = 10)
btn2 = botão (quadro, text = "reset", comando = resetpBar).pacote (PADX = 10)
quadro.MAINLOOP ()

Quando este código é executado, ele produz o seguinte comportamento da janela Tkinter em sua máquina:

Você pode observar que, assim que o botão "redefinir" for pressionado, o progresso é redefinido para 0.

Conclusão

As barras de progresso são uma ótima maneira de informar o usuário final sobre a porcentagem de conclusão de uma ação ou o status de execução. Para construir uma barra de progresso no tknter, use o método ProgressBar () do pacote “TTK” e passe os valores para quadro, orientação, comprimento e modo. Para alterar o valor de progresso da barra de progresso, acesse seu atributo "valor" e altere seu valor de acordo com o seu requisito.