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

Tkinter Python Discussion :

Rafraîchissement d'un label [Python 3.X]


Sujet :

Tkinter Python

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    448
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 448
    Points : 143
    Points
    143
    Par défaut Rafraîchissement d'un label
    Bonjour,

    J'ai une interface Tkinter, quand je sélectionne un des menu, ça lance un traitement de decodage d'un fichier binaire (=> assez long).
    Donc j'ai mis un label qui est censé afficher "traitement en cours..." puis "Traitement terminé" quand c'est fini.

    J'ai déclaré un StringVar:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    self.sv = StringVar()
    self.label_traitement = Label(self.header, textvariable=self.sv)
    self.sv.set("toto")
    self.label_traitement.pack()
    Puis ma fonction de traitement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    def ping_bathy2csv(self):
            ping_logfile = ping.Log(MonFichierLog, cfg)
            self.sv.set("Début traitement")               
            dd = ping_logfile.decode()
            self.sv.set("Traitement terminé")
    Mais quand je sélectionne mon menu, le traitement se lance (ligne ping_logfile.decode()) avant d'avoir rafraichi le label.
    A la fin, j'ai bien "Traitement terminé" qui s'affiche.
    J'ai essayé de mettre une instruction pause avant de lancer le traitement, ou refresh, mais ça ne change rien.

    Une idée?

    Merci,
    Nico

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 333
    Points : 36 853
    Points
    36 853
    Par défaut
    Salut,

    Pour mettre à jour l'affichage avant la sorite du callback, il faut appeler la méthode .update_idletasks (commune à tous les widgets).

    - W

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Rafraîchissement plusieurs Label
    Par Oscar02 dans le forum GUI
    Réponses: 1
    Dernier message: 02/03/2020, 22h20
  2. Réponses: 6
    Dernier message: 05/03/2019, 19h16
  3. Réponses: 2
    Dernier message: 14/11/2013, 09h13
  4. Réponses: 1
    Dernier message: 24/03/2010, 14h09
  5. scroll dans un label
    Par Pretender dans le forum Composants VCL
    Réponses: 9
    Dernier message: 27/09/2002, 17h06

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