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 :

Déclencher une action et enregistrer son heure de déclenchement [Python 3.X]


Sujet :

Tkinter Python

  1. #1
    Membre du Club
    Homme Profil pro
    Conseiller Technique Logiciel
    Inscrit en
    Juin 2015
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Conseiller Technique Logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2015
    Messages : 32
    Points : 61
    Points
    61
    Par défaut Déclencher une action et enregistrer son heure de déclenchement
    Bonsoir,

    Autant le dire de suite, je ne suis pas développeur ; je cherche juste à apprendre de nouvelles choses.

    Je me suis donc mis en tête de créer une application pour l'environnement Windows qui permette de sélectionner une tâche dans une liste et d'en déterminer le temps passé à y travailler.

    J'ai donc commencé par consulter le net ici et là pour me familiariser avec Tkinter.

    J'ai réussi à mettre ceci en place :
    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    """
    Application bidouillée en python 3 qui devrait permettre de calculer le temps passé à une mission choisie dans la liste.
    Doit donner l'heure de début, celle de fin et la durée de la tâche.
    Doit écrire la date du jour, la mission et la durée dans un fichier texte sur le bureau de l'utilisateur.
    """
    # coding: utf-8
     
    import tkinter as tk
    from datetime import date, time,datetime
     
     
    # Création de la classe Application
    class Application(tk.Tk):
        def __init__(self):
            tk.Tk.__init__(self)
            self.creer_elements()
     
     
        def creer_elements(self):
     
            # Enregistrement de l'heure de début
            def f_heure_debut():
                h_debut=0
                h_debut=datetime.now()
                heure_debut.set(h_debut.time())
     
            # Définition de la taille de la fenêtre
            self.geometry("400x400+400+400")
     
            # Définition de l'étiquette de la liste des missions
            self.label = tk.Label(self, height=2, width=20,text="Tache en cours :")
            self.label.pack(side="top",padx=25, pady=25)
     
            # Création de la liste des missions
            Taches=["Tache 1","Tache 2","Tache 3","Tache 4","Tache 5","Tache 6","Tache 7","Tache 8","Tache 9","Tache 10","Tache 11","Tache 12","Tache 13","Tache 14","Tache 15","Tache 16","Tache 17"]
            Lmission=tk.Listbox(self, height=5)
            for item in Taches:
                Lmission.insert("end",item)
            Lmission.bind('<<ListboxSelect>>',f_heure_debut())
            Lmission.pack()
     
     
            # Création du bouton de début de mission
            self.label=tk.Label(self, textvariable=heure_debut, relief="flat")
            self.label.pack()
     
            # Création du bouton de fin de mission
            self.bouton=tk.Button(self, text="Fin", relief="flat", command=self.destroy)
            self.bouton.pack()
     
            # Création du bouton de sortie
            self.bouton=tk.Button(self, text="Fermer", relief="flat", command=self.destroy)
            self.bouton.pack(side="bottom")
     
    # Démarrage
    if __name__=="__main__":
        # Création de la fenêtre
        app=Application()
        # Définition du titre de la fenêtre
        app.title("Temps par mission")
        app['bg']="lavender"
        app.mainloop()
    Je butte sur la manière de mémoriser l'heure de début de la tâche.

    J'ai pris l'option : je sélectionne ma tache pour signal de démarrage je clique sur le bouton fin pour en déterminer la durée.

    Seulement, j'ai raté un truc.
    Je souhaite donc être mis sur la piste et comprendre la raison de mon échec.

    Cordialement.
    Je ne suis pas développeur mais je cherche toujours à apprendre et comprendre.
    Je me donne beaucoup de mal mais parfois cela ne suffit pas...

  2. #2
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut


    Juste être mis sur la piste...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        def creer_elements(self):
            heure_debut = tk.StringVar(self)
     
            # Enregistrement de l'heure de début
            def f_heure_debut():
                heure_debut.set(datetime.now().time())
     
            # Définition de la taille de la fenêtre

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  3. #3
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 778
    Points
    36 778
    Par défaut
    Salut,

    Citation Envoyé par X5-495 Voir le message
    Seulement, j'ai raté un truc.
    Je souhaite donc être mis sur la piste et comprendre la raison de mon échec.
    Si on lance le programme que vous avez posté on obtient:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NameError: name 'heure_debut' is not defined
    Et danielhagnoul fait juste le minimum: définir la variable!

    Malheureusement, ce n'est pas la seule erreur "basique"... et la seule façon de les éviter est de passer du temps à apprendre dans un tuto.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  4. #4
    Membre du Club
    Homme Profil pro
    Conseiller Technique Logiciel
    Inscrit en
    Juin 2015
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Conseiller Technique Logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2015
    Messages : 32
    Points : 61
    Points
    61
    Par défaut
    Bonjour,

    D'habitude, je déclare mes variables... mais justement à force de lire et relire des tutos. Cela finit par se mélanger.

    Merci pour ces deux retours, je vais m'y remettre et continuer à chercher à avancer.

    Cordialement.
    Je ne suis pas développeur mais je cherche toujours à apprendre et comprendre.
    Je me donne beaucoup de mal mais parfois cela ne suffit pas...

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 778
    Points
    36 778
    Par défaut
    Salut,

    Citation Envoyé par X5-495 Voir le message
    D'habitude, je déclare mes variables... mais justement à force de lire et relire des tutos. Cela finit par se mélanger.
    Il faut prendre le temps d'assimiler petit à petit sinon çà devient vite "compliqué" à démêler.
    Surtout que la principale difficulté lorsqu'on programme n'est pas d'écrire du code mais arriver a se relire lorsqu'il ne fonctionne pas.
    Là vous avez la chance d'avoir un message d'erreur (qui devrait être) clair.
    Malheureusement, ce n'est pas toujours le cas: un oubli a un endroit pourra entrainer une erreur constatée bien plus tard.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  6. #6
    Membre du Club
    Homme Profil pro
    Conseiller Technique Logiciel
    Inscrit en
    Juin 2015
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Conseiller Technique Logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2015
    Messages : 32
    Points : 61
    Points
    61
    Par défaut
    Bonsoir,

    Je reviens par ici pour dire merci encore pour les pistes données.

    J'ai un peu continuer à travailler mon projet mais surtout essayer de m'instruire davantage.

    Je vais compte bien revenir poser mes questions, si je n'avance plus.

    Cordialement
    Je ne suis pas développeur mais je cherche toujours à apprendre et comprendre.
    Je me donne beaucoup de mal mais parfois cela ne suffit pas...

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

Discussions similaires

  1. déclencher une action à une heure précise
    Par thor76160 dans le forum C#
    Réponses: 2
    Dernier message: 05/09/2009, 15h06
  2. Réponses: 3
    Dernier message: 02/08/2007, 14h30
  3. Réponses: 4
    Dernier message: 02/05/2007, 09h29
  4. Déclencher une action avec un chrono
    Par Oberown dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 20/09/2005, 14h22
  5. [JTextField] Déclencher une action avec la touche ENTER
    Par tchoukapi dans le forum Composants
    Réponses: 10
    Dernier message: 19/09/2005, 14h37

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