user@linuxtrack:~ $ python -c 'print("Soyez les bienvenus !")'

Vous n'êtes pas identifié(e).

#1 09-12-2014 08:23:45

IceF0x
#! Gourou Linux

Porgressbar en GTK

Voici un petit code exemple que j'ai trouvé dans un cour de python en anglais donc je partage.

1418106932_capture_d_ecran_-_09122014_-_07_17_11.png

#!/usr/bin/env python

import gtk, gobject

class ProgressBar:
    def __init__(self):                  #construction de la fenetre
        pb = gtk.Window() 
        vbox = gtk.VBox(False, 5)

        self.progressbar = gtk.ProgressBar()
        vbox.pack_start(self.progressbar)
        pb.connect("destroy", lambda w: gtk.main_quit())
        pb.add(vbox)
        pb.show_all()
        
        self.run()
    
    def run(self):
        gobject.timeout_add(500, self.update) #si vous diminuez cette valeur, le timing sera plus rapide.
    
    def update(self):       
        if self.progressbar.get_fraction() >= 1.0:
            value = 0.0
        else:
            value = self.progressbar.get_fraction() + 0.1
            
        self.progressbar.set_fraction(value) #affichage de la valeur en %
        percent = value * 100
        percent = str(int(percent))
        self.progressbar.set_text(percent + "%")  
        
        return True #si la valeur est passé à False, la progressbar s'aretera à 10%

ProgressBar()
gtk.main()

Autre version avec un tableau et des celulles.

1418107541_capture_d_ecran_-_09122014_-_07_45_08.png

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import gtk

class CellRendererProgress:
    def __init__(self):
        pb = gtk.Window()
        pb.set_default_size(400, 100)
        
        liststore = gtk.ListStore(str, int)
        liststore.append(["Backup des fichiers", 75])
        liststore.append(["Création de l'archive", 20])
        liststore.append(["Installation du theme", 62])
        
        treeview = gtk.TreeView(liststore)
        column_text = gtk.TreeViewColumn("Text")
        column_progress = gtk.TreeViewColumn("Progress Bar")
        treeview.append_column(column_text)
        treeview.append_column(column_progress)
        
        cellrenderer_text = gtk.CellRendererText()
        column_text.pack_start(cellrenderer_text, False)
        column_text.add_attribute(cellrenderer_text, "text", 0)
        
        cellrenderer_progress = gtk.CellRendererProgress()
        column_progress.pack_start(cellrenderer_progress, True)
        column_progress.add_attribute(cellrenderer_progress, "value", 1)
        
        pb.connect("destroy", lambda w: gtk.main_quit())

        pb.add(treeview)
        pb.show_all()

CellRendererProgress()
gtk.main()

Utiliser des logiciels propriétaires, c'est comme les plats préparés, on est incapable de dire les conservateurs qu'ils contiennent, on dira toujours que c'est bon, mais ça ne remplacera jamais le repas fait maison par sa maman.
]:D #! Crunchbang & Archlinux GNU/Linux User ]:D

Hors ligne

Pied de page des forums