IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

GTK+ avec Python Discussion :

[PyGTK] Window et progressBar


Sujet :

GTK+ avec Python

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 5
    Par défaut [PyGTK] Window et progressBar
    Bonjour,

    Je développe actuellement une application en python et j'utilise pygtk pour créer l'interface graphique. Un des traitements d'information que je fais prend du temps et est divisé en plusieurs étapes. Pour notifier l'avancement du traitement à l'utilisateur, je voudrais utiliser une barre de progression. Pour cela, je crée une gtk.Window, dans laquelle j'ajoute une gtk.ProgressBar. J'affiche le tout et ensuite je modifie la fraction de la barre de progression au fur et à mesure que le traitement avance. Voici un schéma du code que j'ai écrit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    window = gtk.Window()
    bar = gtk.ProgressBar()
    window.add(bar)
    window.show_all()
    step = 1.0 / 3
    sleep(1)
    premier_traitement()
    bar.set_fraction(bar.get_fraction() + step)
    sleep(1)
    second_traitement()
    bar.set_fraction(bar.get_fraction() + step)
    sleep(1)
    dernier_traitement()
    bar.set_fration(bar.get_fraction() + step)
    window.hide_all()
    window.destroy()
    Malheureusement cela ne marche pas du tout : la fenêtre ne s'affiche pas à moins que je n'appelle gtk.main().

    Pourriez-vous m'aider?

    Merci d'avance,

    sibork

  2. #2
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    96
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mai 2006
    Messages : 96
    Par défaut
    Salut,

    Si tu n'appelles pas gtk.main(), tes fenêtres ne peuvent pas s'afficher.

    Si tu met a jour ta progressbar dans le thread principal (celui de gtk.main()), graphiquement cela ne fonctionnera pas, il faut que tu fasse un nouveau thread ayant pour tache de faire le traitement qui prend du temps.

    regarde du coté du module threading ou des fonctions gobject (gobject.idle_add je crois)

Discussions similaires

  1. Réponses: 0
    Dernier message: 28/09/2011, 13h33
  2. Réponses: 4
    Dernier message: 05/08/2011, 03h24
  3. compatibilité pyGTK et python2.7 sous windows
    Par turboiii dans le forum GTK+ avec Python
    Réponses: 2
    Dernier message: 28/05/2010, 17h38
  4. pygtk + glade sous windows
    Par jvander59 dans le forum GTK+ avec Python
    Réponses: 1
    Dernier message: 22/08/2009, 12h21
  5. [C#] ProgressBar style démarrage windows XP
    Par heavydrinker dans le forum Windows Forms
    Réponses: 7
    Dernier message: 14/09/2006, 10h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo