Partage
  • Partager sur Facebook
  • Partager sur Twitter

Comment faire un chronomètre avec le module"time"?

    15 septembre 2022 à 23:42:11

    Bonjour tout le monde,

    S'il vous plait je voudrais faire un programme de quiz et je veux utiliser un chronomètre.

    #Voici le code du boutton:
    time=Button(que1,text='',font='Courier 12',bg="#FED823",fg='blue').grid(row=0,column=2)

    Avez-vous une idée sur ce problème.:D

    • Partager sur Facebook
    • Partager sur Twitter
      15 septembre 2022 à 23:59:16

      Bonjour.

      import time
      
      nb_sec = 0
      while nb_sec < 30:
          time.sleep(1)
          nb_sec += 1
          print(nb_sec)


      Un truc dans le style, ça peut le faire. Il faut adapter la condition de la boucle while à ta situation et mettre à jour le texte de ton widget au format que tu veux.

      Edit : Par contre, je viens de penser que time.sleep va être bloquant pour ton appli. Dans ce cas, c´est même pas la peine d´utiliser le module time, la fonction after de Tkinter fera l´affaire.

      nb_sec = 0
      while nb_sec < 30:
          ta_fenetre.after(1000)
          nb_sec += 1
          ton_widget.configure(text=str(nb_sec))



      -
      Edité par PB68 16 septembre 2022 à 8:20:03

      • Partager sur Facebook
      • Partager sur Twitter

      PB68

        16 septembre 2022 à 8:27:31

        PB68 a écrit:

        Edit : Par contre, je viens de penser que time.sleep va être bloquant pour ton appli. Dans ce cas, c´est même pas la peine d´utiliser le module time, la fonction after de Tkinter fera l´affaire.

        nb_sec = 0
        while nb_sec < 30:
            ta_fenetre.after(1000)
            nb_sec += 1
            ton_widget.configure(text=str(nb_sec))

        Bonjour,

        Utilisé ainsi after() est aussi bloquant.

        Pour qu'il ne le soit pas, il faut l'utiliser avec un callback.
        Exemple:

        import tkinter as tk
        
        
        root = tk.Tk()
        label = tk.Label()
        label.grid()
        
        def compte(stop=30, temps=0):
            label.config(text=temps)
            if temps-stop: 
                temps += 1
                root.after(1000, compte, stop, temps)
            
        compte(stop=5)
        root.mainloop()
        



        -
        Edité par __fabien 16 septembre 2022 à 9:31:50

        • Partager sur Facebook
        • Partager sur Twitter
        • J'aime les bananes, le python, le gnu, le pingouin.
          • Vive le libre !
          16 septembre 2022 à 12:07:23

          IlyasIsmailiAlaoui1 a écrit:

          Bonjour tout le monde,

          S'il vous plait je voudrais faire un programme de quiz et je veux utiliser un chronomètre.

          #Voici le code du boutton:
          time=Button(que1,text='',font='Courier 12',bg="#FED823",fg='blue').grid(row=0,column=2)

          Avez-vous une idée sur ce problème.:D

          Au passage avec ton code, tu redéfinies time en tant que bouton si tu l'as importer avant (donc si tu utilises time après être passé par cette ligne, cela fera référence à ton bouton et non plus au module)

          • Partager sur Facebook
          • Partager sur Twitter

          Comment faire un chronomètre avec le module"time"?

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          • Editeur
          • Markdown