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

Python Discussion :

Tkinter probleme avec les bouton


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2021
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2021
    Messages : 11
    Par défaut Tkinter probleme avec les bouton
    Hey j'aurais beoin de l'aide de quelqu'un, j'ai raccourci mon programme pour vous faciliter la tache.
    Au début le rectangle a sa couleur d'arriere plan, quand je clique dessus il devient jaune mais si je reclique il reste jaune alors que j'aimerais qu'il devienne rouge...
    J'ai l'impression que mes IF de ma fonction 'couleurJoueur' sont ignorés..
    Si vous savez comment m'aider je vous remercie d'avance

    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
    from tkinter import *
    equipe = "R"
     
    def couleurJoueur(equipe):
        joueur.delete("all")
        if equipe == "J":
            equipe = "R"
            joueur.create_rectangle(0, 0, 50, 50, fill='red')
        if equipe == "R":
            equipe = "J"
            joueur.create_rectangle(0, 0, 50, 50, fill='yellow')
     
     
    fenetre =Tk()
    joueur = Canvas(fenetre, width=50, height=50, bg='#625957', highlightthickness=0)
     
    boutonJoueur = Button(fenetre, text="Changer de joueur", font=("Courrier", 20), bg='orange', fg='white', command=lambda : couleurJoueur(equipe))
    boutonJoueur.pack()
     
    joueur.pack()
    fenetre.mainloop()

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    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 741
    Par défaut
    Salut,

    Dans couleurJoueur ajoutez un print(equipe), çà devrait vous donner des idées sur la cause du problème.

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

  3. #3
    Membre régulier
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2021
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2021
    Messages : 11
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,

    Dans couleurJoueur ajoutez un print(equipe), çà devrait vous donner des idées sur la cause du problème.

    - W
    J'ai testé, il m'affiche effectivement que ma variable equipe = "J" a chaque fois que je clique sur le bouton..
    je ne comprend pas d'ou ca peut venir...

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    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 741
    Par défaut
    Citation Envoyé par remilami Voir le message
    je ne comprend pas d'ou ca peut venir...
    Du code que vous avez écrit.

    C'est pas compliqué: comment est appelée cette fonction: command=lambda : couleurJoueur(equipe).

    Ce équipe là est 'R' et n'a aucune raison de changer avec les appels successifs à la fonction. Et de toutes façons, appeler une fonction avec un paramètre donné, va produire le même résultat.

    Pour que son comportement change, il faut que la fonction accède à une mémoire externe (qui soit présente avant et après son exécution/activation).

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

  5. #5
    Membre régulier
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2021
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2021
    Messages : 11
    Par défaut
    Pour que son comportement change, il faut que la fonction accède à une mémoire externe (qui soit présente avant et après son exécution/activation).
    Ah oui effectivement j'ai compris ce qui n'allais pas merci
    Et ce que vous me dites me semble assez complexe je pense ne pas savoir le faire...
    En resumé je cherche simplement une facon de faire alterner les 2 équipes en cliquant sur le bouton, si vous avez une idée qui serait peut etre plus efficace que celle-ci je suis preneur...
    Merci de votre aide

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    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 741
    Par défaut
    Citation Envoyé par remilami Voir le message
    Et ce que vous me dites me semble assez complexe je pense ne pas savoir le faire...
    Si vous en êtes à programmer avec tkinter sans connaître les variables globales (comme vous ignorez sans doute la POO), çà ne va pas le faire.

    Retournez voir le chapitre sur les fonctions et la portée des variables de votre tuto/cours préféré car sans maîtriser çà vous allez juste patauger...


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

Discussions similaires

  1. Réponses: 5
    Dernier message: 15/05/2007, 16h19
  2. Probleme avec les boutons d'options independants
    Par Vercingetorix dans le forum Access
    Réponses: 2
    Dernier message: 18/06/2006, 07h48
  3. [MFC] Probleme avec les bouton et les CEdit
    Par ksoft dans le forum MFC
    Réponses: 4
    Dernier message: 12/05/2006, 14h03
  4. Probleme avec les boutons radio
    Par aproust dans le forum Linux
    Réponses: 3
    Dernier message: 11/05/2006, 08h05
  5. probleme avec les radio bouton
    Par zola dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 08/06/2005, 09h52

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