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

GUI Python Discussion :

Menu Tkinter ne lance mon programme Python qu'une seule fois


Sujet :

GUI Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Ancien Directeur de projet et commerçant actuellement
    Inscrit en
    Juillet 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ancien Directeur de projet et commerçant actuellement
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Juillet 2020
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Menu Tkinter ne lance mon programme Python qu'une seule fois
    Bonjour,
    J'utilise un iMac avec la version python 3.8.3, version IDLE : 3.8.3 et version tk : 8.6.8
    J'ai réalisé 2 programmes qui fonctionne tous les 2 de façon autonome.
    j'ai réalisé, à partir de la fenêtre principale du premier programme, un menu d'appel à l'éditeur TextEdit, à des pages web qui fonctionne très bien.
    Par contre , une entrée de menu appelle le 2éme programme et celui-ci ne s'exécute que la première fois où le menu est actionné, puis quand on passe une deuxième fois sur le menu, il ne se passe rien.
    les autres options de menu TextEdit ou web se déclenchent à chaque appel du menu et des "traces" insérée dans la fonction indiquent que celle-ci est bien appelée à chaque clic sur le menu.
    Programme principal :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    def lance_purge() :
           import Aq_purgefichierPh
           Aq_purgefichierPh
           print("passage purge")
           return
     
    menuDeroulant2.add_command(label="Purge du fichier PH", command = lance_purge)
    Programme appelé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    print("sousprog purge 1")
    fenetrepurge = Toplevel()
    print("sousprog purge 2")
    fenetrepurge.title("Purge du fichier PH.txt")
    fenetrepurge.geometry("720x480")
    fenetrepurge.minsize(480, 360)
    fenetrepurge.config(bg="#4065A4")
    Les "print" correspondent aux traces décrites. J'avoue ne pas comprendre.
    Si quelqu'un pouvait m'éclairer ....
    D'avance merci

  2. #2
    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 776
    Points
    36 776
    Par défaut
    Salut,

    Un programme est un script machin.py lancé directement ou via python machin.py tapé dans un terminal.
    import machin ne lance pas un programme, il charge un module!

    Les instructions ne sont exécutées qu'une seule fois...
    Mais, si ces instructions définissent des fonctions, on pourra les appeler autant que nécessaire.

    Vous avez un bon tuto. sur les modules dans le Python tutorial.

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

  3. #3
    Candidat au Club
    Homme Profil pro
    Ancien Directeur de projet et commerçant actuellement
    Inscrit en
    Juillet 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ancien Directeur de projet et commerçant actuellement
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Juillet 2020
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Bonsoir,

    Merci d'avoir répondu.
    J'avais bien compris que l'import ne faisait que charger le module, mais que je le mets au niveaux des import time, os ,etc, le programme AqpurgefichierPh se lance avant même que j'actionne le menu, d'ou le fait d'avoir mis l'import dans la fonction décrite dans command.
    Par contre, la ligne suivante "Aq_purgefichierPh" sous l'import devait, mon avis, déclencher l'exécution du script comme un exec.
    or, l'action sur le menu ouvre une seule fois le script "AQ_purgefichierPh et ensuite chaque action sur le menu ne montre que les prints "passage purge" sans exécution de Aq_purgefichierPh.
    Je viens de lire le tutoriel mentionné mais je ne comprends pas pourquoi cela ne fonctionne pas sur mon exemple.

    Suis je clair dans mes explications ?

    Cordialement
    F.

  4. #4
    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 776
    Points
    36 776
    Par défaut
    Citation Envoyé par Frederic3344 Voir le message
    Suis je clair dans mes explications ?
    Lancez l'interpréteur Python puis tapez:
    import Aq_purgefichierPh
    puis Aq_purgefichierPh autant de fois que vous voulez.

    Vous constaterez que Python ne fonctionne pas comme vous le souhaitez mais suivant sa propre logique.
    C'est pas pour rien qu'il y a tuto. et exercices pour apprendre.

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

  5. #5
    Candidat au Club
    Homme Profil pro
    Ancien Directeur de projet et commerçant actuellement
    Inscrit en
    Juillet 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ancien Directeur de projet et commerçant actuellement
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Juillet 2020
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Bonjour,
    Ok , j'ai pu tester et voir les résultats en faisant l'import puis les appels .
    Je vais écrire mon module sous forme d'un ensemble de fonctions puis les appeler.

    Cdlt.
    F.

Discussions similaires

  1. Réponses: 4
    Dernier message: 19/01/2017, 08h09
  2. executer mon programme python sous lunix
    Par nancy maman dans le forum Général Python
    Réponses: 17
    Dernier message: 06/10/2011, 21h43
  3. [Turbo Pascal] Mon programme s'arrête tout seul
    Par kenny94 dans le forum Turbo Pascal
    Réponses: 2
    Dernier message: 10/09/2011, 07h46
  4. Réponses: 3
    Dernier message: 17/05/2008, 14h39
  5. [Lien]erreur dans mon programme python
    Par durnambule dans le forum Général Python
    Réponses: 11
    Dernier message: 29/01/2004, 14h59

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