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 :

Savoir l'ordre d'exécution des fonctions


Sujet :

Tkinter Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2018
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2018
    Messages : 26
    Points : 22
    Points
    22
    Par défaut Savoir l'ordre d'exécution des fonctions
    Bonjour,

    Avec le mode Tkinter, je créer 2 fonctions pour un canvas comme dans l'exemple ci-dessous
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    def fonction1(ev):
    ......
    def fonction2(ev):
    ....
    canvas.bind_all('<Button-1>',fonction1)
    canvas.bind_all('<Button-3>',fonction2)
    J'aimerais pouvoir exécuter la fonction 2 uniquement si la fonction 1 a déjà été exécutée
    Comment faire ?

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

    A vue de nez, vous avez au moins 2 solutions:
    • faire le bind de la 2ème fonction lors de l'exécution de la première(*),
    • définir une variable globale positionné par la première fonction qui sera testé par la seconde pour ne rien faire tant que...

    (*) comme vous n'allez faire le "bind" qu'une seule fois, vous aurez aussi une variable "globale" qui devra être testée.

    - W

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2018
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2018
    Messages : 26
    Points : 22
    Points
    22
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,

    A vue de nez, vous avez au moins 2 solutions:
    • faire le bind de la 2ème fonction lors de l'exécution de la première(*),
    • définir une variable globale positionné par la première fonction qui sera testé par la seconde pour ne rien faire tant que...

    (*) comme vous n'allez faire le "bind" qu'une seule fois, vous aurez aussi une variable "globale" qui devra être testée.

    - W
    Merci de votre réponse,
    Pour faire le bind de la 2eme fonction lors de l'exécution de la première il faut que je mette le bind de la 2eme fonction dans la première fonction ?
    Pour la variable globale j'ai regardé des exemples sur internet mais je ne comprend pas comment cela s'utilise et ce que ça permet de faire...

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 396
    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 396
    Points : 36 954
    Points
    36 954
    Par défaut
    Citation Envoyé par reborn1234 Voir le message
    Pour la variable globale j'ai regardé des exemples sur internet mais je ne comprend pas comment cela s'utilise et ce que ça permet de faire...
    Portée des variables et références sont des concepts de base du langage que n'importe quel tuto. aborde dans les chapitres qui parlent des fonctions.
    Dans le Swinnen, c'est ici. Et il vous fait prendre le temps de bien assimiler tout çà parce qu'avec tkinter, çà s'utilise un max (tant que vous ne savez pas faire de la POO).

    - W

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2018
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2018
    Messages : 26
    Points : 22
    Points
    22
    Par défaut
    Merci,
    Et est ce que vous sauriez si c'est possible d'assigner plusieurs fonctions à un même bind ?
    Par exemple si j'ai 2 fonctions, que je puisse les utiliser toutes les 2 en fesant un clic droit
    car je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    def fonction1(ev):
    ...
    def fonction2(ev):
    ...
     canvas.bind_all('<Button-1>',fonction1)
     canvas.bind_all('<Button-1>',fonction2)
    Mais ça ne marche que avec une seule fonction

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 396
    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 396
    Points : 36 954
    Points
    36 954
    Par défaut
    Citation Envoyé par reborn1234 Voir le message
    Et est ce que vous sauriez si c'est possible d'assigner plusieurs fonctions à un même bind ?
    Si vous aviez pris le temps d'apprendre à jouer avec le concept de fonction, vous auriez le réflexe de faire bind sur une fonction dont les instructions se réduisent à appeler l'une puis l'autre des fonctions choisies.

    note: faites attention aussi "bind_all" fait plus que "bind".

    - W

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 08/11/2014, 00h43
  2. Ordre d'exécution des fonctions
    Par tom06440 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 07/10/2010, 15h16
  3. [URL Rewriting] ordre d'exécution des règles
    Par safisafi dans le forum Apache
    Réponses: 1
    Dernier message: 21/11/2006, 18h52
  4. [AJAX] Ajax et exécution des fonctions javascript
    Par Bobtop dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 27/06/2006, 15h22
  5. ordre d'exécution des événements onblur et onfocus
    Par letycaf dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 23/05/2006, 15h30

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