Python >> Tutoriel Python >  >> Python GUI >> Tkinter GUI

Créer une barre de progression dans Tkinter Python

Une barre de progression est un élément de contrôle graphique qui permet de visualiser la progression d'une opération informatique étendue, par exemple au moment du téléchargement, du transfert de fichier ou de l'installation. Pour utiliser la barre de progression dans tkinter, nous devons d'abord importer le module tkinter.ttk car la barre de progression est l'un des six widgets qui ne sont pas directement disponibles dans Tkinter.

Le module tkinter.ttk donne accès à l'ensemble de widgets sur le thème Tk. Pour en savoir plus sur tkinter.ttk, cliquez ici.

Créez maintenant un écran et utilisez le widget de barre de progression fourni par tkinter.ttk pour créer une simple barre de progression sur l'écran.

from tkinter import *
from tkinter.ttk import Progressbar
from tkinter import ttk
scr=Tk()
scr.title("Progressbar")
scr.geometry('5000x1000')
s = ttk.Style()
s.theme_use('default')
s.configure("black.Horizontal.TProgressbar", background='red')
bar = Progressbar(scr, length=400, s='black.Horizontal.TProgressbar')
bar['value'] = 50
bar.place(x=500,y=400)

Le code ci-dessus créera une simple barre de progression à l'écran, comme indiqué dans la figure ci-dessous. La valeur actuelle de la barre est de 50, comme spécifié à l'aide de value attribut.

Cependant, cela créera simplement une barre de progression statique à l'écran sans fonctionnalité.

Barre de progression fonctionnelle

Les barres de progression peuvent être utilisées de différentes manières. Ils sont souvent utilisés pour assurer l'utilisateur que quelque chose se passe à l'écran. L'un des exemples suivants pour utiliser la barre de progression dans tkinter est donné ci-dessous.

from tkinter import *
from tkinter.ttk import Progressbar
from tkinter import ttk
scr=Tk()
scr.title("Progressbar")
scr.geometry('5000x1000')
s = ttk.Style()
s.theme_use('default')
s.configure("black.Horizontal.TProgressbar", background='red')
b=Button(scr,text="Increase",fg="black",bg="green",font=('Time','13','bold'),command=lambda:increase())
b.place(x=550,y=450)
b=Button(scr,text="Decrease",fg="black",bg="red",font=('Time','13','bold'),command=lambda:decrease())
b.place(x=750,y=450)
bar = Progressbar(scr, length=400, s='black.Horizontal.TProgressbar')
bar['value'] = 20
bar.place(x=500,y=400)

def increase():
    if bar['value']<100:
        bar['value']=bar['value']+10
    if bar['value']<=30:
       s.configure("black.Horizontal.TProgressbar", background='red')
    elif bar['value']>30 and bar['value']<=60:
       s.configure("black.Horizontal.TProgressbar", background='orange')
    elif bar['value']>60 and bar['value']<=80:
       s.configure("black.Horizontal.TProgressbar", background='yellow')
    elif bar['value']>80:
       s.configure("black.Horizontal.TProgressbar", background='green')

def decrease():
    if bar['value']>0:
        bar['value']=bar['value']-10
    if bar['value']<=30:
        s.configure("black.Horizontal.TProgressbar", background='red')
    elif bar['value']>30 and bar['value']<=60:
       s.configure("black.Horizontal.TProgressbar", background='orange')
    elif bar['value']>60 and bar['value']<=80:
       s.configure("black.Horizontal.TProgressbar", background='yellow')
    elif bar['value']>80:
       s.configure("black.Horizontal.TProgressbar", background='green')


Le bloc de code donné créera une barre de progression sur l'écran avec deux boutons. Ces boutons permettent de modifier la valeur de la barre de progression.

Vous trouverez ci-dessous différentes images prises à différentes instances lorsque le code ci-dessus est exécuté. (Les boutons Augmenter et Diminuer permettent de modifier la valeur de la barre de progression)

C'est ainsi que vous pouvez utiliser d'autres widgets pour ajouter des fonctionnalités dans une barre de progression.