Partage
  • Partager sur Facebook
  • Partager sur Twitter

bloucle dans un label tkinter

bloucle dans un label tkinter

    17 septembre 2017 à 23:51:33

    je voudrais que le label affiche l'heure 

    sauf que dans mon code si dessous le label l'affiche une fois puis se fige et ne continue pas la boucle

    #!/usr/bin/python3
    # -*- coding: utf-8 -*-
    import time
    import os
    from tkinter import *
    from tkinter import PhotoImage, Tk
    
    fenetre = Tk()
    label1 = Label(fenetre, text="")
    label1.pack()
    while True:
        po = time.time()
        label1["text"] =str(po)
        fenetre.mainloop()
    
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      18 septembre 2017 à 7:17:20

      Bonjour ? Merci ?

      Sinon, ton problème vient de la ligne 14: regarde comment fenetre.mainloop() fonctionne.

      • Partager sur Facebook
      • Partager sur Twitter
        24 septembre 2017 à 19:39:23

        Salut !

        Normalemnt, pour changer un label, on utilise textvariable au lieu de text mais comme tu dois actualiser tout le temps, je te conseille plutôt d'utiliser des threads (tâches de fonds) :

        import time
        import os
        from tkinter import *
        from tkinter import PhotoImage, Tk
        import threading
         
        def affichetemps():
            global L
            while True:
                po = time.strftime('%d/%m/%y %H:%M:%S',time.localtime())
                label1.config(text=po)
                time.sleep(0.01)    
         
        fenetre = Tk()
        label1 = Label(fenetre, text = "")
        label1.pack()
        thead=threading.Thread(target=affichetemps)
        thead.setDaemon(True)
        thead.start()
        fenetre.mainloop()
        

        J'espère que ça marchera chez toi

        -
        Edité par Aubin_Sionville 24 septembre 2017 à 19:42:08

        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          24 septembre 2017 à 20:11:55

          Les Widgets ont tous une méthode "after" qui permet d'appeler une fonction après x millisecondes.

          from tkinter import Label
          from time import time
          
          
          def update_label(label):
              label["text"] = str(time())
              label.after(100, update_label, label)
          
          label = Label()
          label.pack()
          update_label(label)
          label.mainloop()



          • Partager sur Facebook
          • Partager sur Twitter

          bloucle dans un label tkinter

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown