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 :

Affichage de la date en temps réel


Sujet :

Tkinter Python

  1. #1
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut Affichage de la date en temps réel
    Bonjour tout le monde,

    J'ai trouvé le code suivant pour afficher la date du PC sur une applic graphique:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    from Tkinter import *
    import time
     
    date = time.strftime('%d/%m/%y %H:%M:%S',time.localtime())
     
    root = Tk()
    L = Label(root, text = date).pack()
     
    root.mainloop()
    Ça ça marche impec, si ce n'est que l'heure (et donc à priori la date) ne se change pas en temps réel.

    Quelqu'un a-t-il une idée?

    J'ai trouvé sur un autre site quelque chose du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    from Tkinter import *
    import time
     
    while True:
        date = time.strftime('%d/%m/%y %H:%M:%S',time.localtime())
        time.sleep(1)
     
        root = Tk()
        L = Label(root, text = date).pack()
        root.mainloop()
    mais ça ne marche pas...
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

  2. #2
    Expert éminent sénior
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Points : 10 067
    Points
    10 067
    Par défaut
    Il faut travailler avec les threads:
    regarde cette source: http://guigui.developpez.com/sources/TkHorloge/

  3. #3
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut
    L'exemple que tu m'as donné me parait assez complexe, et je refuse de croire qu'un langage comme Python ne permet pas de faire quelque chose de plus simple.

    J'ai modifié mon code en ajoutant un Button qui permet de mettre à jour l'heure.
    Ça marche impec.

    Maintenant il suffit de trouver une astuce pour que ceci se fasse seul.

    J'ai pensé à une boucle qui démarre avec l'ouverture de l'interface et qui s'arrête avec sa fermeture. Le problème c'est que je sais pas la faire.
    Je pense que l'exemple que tu me donne le traite. Je vais donc approfondir ça.

    Qu'en penses-tu?
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

  4. #4
    Expert éminent sénior
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Points : 10 067
    Points
    10 067
    Par défaut
    C'est parce que le source est un peu plus complet et utilise le timer de manière propre (pour qu'on puisse l'arrêter)

    sinon un exemple utilisation une tempo ( http://python.developpez.com/faq/?pa...ad#ThreadTimer )

    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
    import Tkinter as Tk
    import threading
    import time
     
    root = Tk.Tk()
    lbl = Tk.Label(root)
    lbl.pack()
     
     
    def MyTimer(tempo = 1.0):
        threading.Timer(tempo, MyTimer, [tempo]).start()
        date = time.strftime('%d/%m/%y %H:%M:%S',time.localtime())
        lbl.configure(text=date)
     
    MyTimer(1.0) 
    root.mainloop()

  5. #5
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 462
    Points : 9 249
    Points
    9 249
    Billets dans le blog
    6
    Par défaut
    Voilà un autre petit exemple qui marche:

    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
    from Tkinter import *
    import time
    import threading
     
    def affichetemps():
        global L
        while True:
            date = time.strftime('%d/%m/%y %H:%M:%S',time.localtime())
            L.config(text=date)
            time.sleep(0.01)    
     
    root = Tk()
    L = Label(root, text = "")
    L.pack()
    T=threading.Thread(target=affichetemps)
    T.setDaemon(True)
    T.start()
    root.mainloop()
    L'affichage se fait en tâche de fond (dans un thread)

    Le thread s'arrêtera à l'arrêt de la fenêtre grâce à la déclaration "setDaemon".

    Tyrtamos
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  6. #6
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut
    Impec.

    Merci à vous deux
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

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

Discussions similaires

  1. Affichage de l'heure en temps réel dans une interface
    Par T-MAT dans le forum Interfaces Graphiques
    Réponses: 5
    Dernier message: 26/12/2008, 19h08
  2. Soustraction de 2 dates en temps réel
    Par campana dans le forum VBA Access
    Réponses: 4
    Dernier message: 25/11/2008, 22h44
  3. affichage son et suivis en temps réel
    Par pelotudo dans le forum MATLAB
    Réponses: 0
    Dernier message: 08/10/2008, 12h56
  4. Réponses: 4
    Dernier message: 16/06/2006, 03h29

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