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 :

Création d'un compte à rebours


Sujet :

Tkinter Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 27
    Par défaut Création d'un compte à rebours
    Bonjour

    Je voudrais afficher dans un objet Label de Tkinter le resultat d'un decompteur ( heure, minute, seconde )

    J'ai donc une fonction secondes_restantes() a laquelle je passe une valeur en secondes et dans la fonction, une boucle While qui decompte, avec une tempo de 1 seconde...
    C'est donc qqch qui donne par exemple
    75
    74
    73
    etc...

    Ces valeurs, j'arrive sans pb a les afficher dans la fenetre DOS a partir de laquelle Python a été lancé mais je n'arrive pas a les afficher dans le label de Tkinter créé plus haut..;
    Pas de message d'erreur de la part de Python mais pas d'affichage !!!

    Ne faudrait il pas créer ( je ne sais pas comment...) un event a chaque seconde écoulée et faire un "bind" de cet event a l'affichage ou un truc comme cela ?
    Plus d'idée....d'ou ce message...avec remerciements anticipés

  2. #2
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    .itemconfigure ?

    @+

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 27
    Par défaut
    Salut

    Tu m'etonnes...
    j'ai vu itemconfigure pour gerer un remplissage de canvas...
    Ca ne ressemble pas a ce que je cherche !!!

  4. #4
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    C'est bien de suivre

    Regarde ici.
    Tu as juste à lui envoyer un ton_label.config(text=str(ta_valeur))

    Mais je pense que tu avais trouver tout seul.

    @+

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 27
    Par défaut
    oui, j'avais deja utilisé le .config, plus haut dans le script mais, dans le cas précis, ca ne colle pas...

    J'ai l'impression ( l'intuition..? ) que c'est parce que je suis a l'interieur d'une boucle while...
    Cette boucle tourne sur elle meme et je crois que pour afficher dans le label,le simple .configure ne suffit pas car il doit manquer qqch a faire intercepter par la boucle evenementielle.
    Tu ne crois pas ?

    Je te colle une version allégée du script mais qui montre le probleme..
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
     
    def affiche_secondes_restantes(sr):
        heure,minutes,secondes = 0,0,0
        #print (sr)
        print ("Ca s'affiche dans la fenetre DOS !!")
        while sr> 0:
            time.sleep(1)
            if sr >= 3600 :
                heure = sr // 3600
                if heure > 0:
                    min_sec = sr % 3600
                    minutes = min_sec // 60    
                    secondes = min_sec % 60
            else:
                minutes = sr // 60
                secondes = sr % 60
     
            sr -=1
            resultat.configure(text="Fin dans " + str(heure) + ":" + str(minutes) +":" + str(secondes))
            print (" %s:%s:%s" % ( str(heure),str(minutes),str(secondes)))    
        time.sleep(2)
        resultat.configure(text="Fini...")
        fenetre.quit() 
     
    from tkinter import*
    import time
     
    # creation d'une fenetre
    fenetre=Tk()
    fenetre.title('Affiche')
    #creation d'une etiquette pour afficher le resultat
    resultat=Label(fenetre)
    resultat.pack()
     
    affiche_secondes_restantes(14)  # un chiffre par exemple...
     
    # attente des evenements
    fenetre.mainloop()
    Comme tu le devines, je demarre en Python ...

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 27
    Par défaut
    Puisque c'est silence radio sur la ligne, je me reponds a moi-meme...

    J'ai l'impression, n'ayant pas l'habitude de la programmation evenementielle ( ou objet...), je me suis embarqué dans un truc qui devrait etre traité par du traitement parallele, genre thread !!!

    Dans mon cas, lorsque j'utilise un while...eh bien, tant qu'on n'est pas sorti du while, la boucle evenementielle mainloop() doit etre comme suspendue et je ne puis acceder a des objets eventuellement sollicités par des events...
    Comme je n'y connais rien en threads ( ni surtout comment les utiliser...), je suis planté...
    Pas trop grave, j'ai une solution en C..!!!

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

Discussions similaires

  1. [XL-2003] Création de compte à rebours
    Par yfchauer dans le forum Excel
    Réponses: 1
    Dernier message: 19/04/2014, 18h16
  2. [WB14] Création de compte à rebours
    Par peregna2007 dans le forum WebDev
    Réponses: 3
    Dernier message: 04/11/2009, 16h39
  3. compte à rebours
    Par Datord dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 17/11/2005, 21h22
  4. compte à rebours
    Par etoile1506 dans le forum C
    Réponses: 10
    Dernier message: 27/10/2005, 15h20
  5. Compte à rebours trop rapide
    Par Anduriel dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 12/06/2005, 20h57

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