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 :

Modifier une variable avec un bouton


Sujet :

Tkinter Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2019
    Messages : 3
    Par défaut Modifier une variable avec un bouton
    Bonjour, je suis étudiant dans la spécialité ISN du nouveau BAC. Je dois coder le jeux "pierre feuille ciseaux ". Ce jeux est bien connu, donc je ne pense pas avoir besoin de l'expliquer . Dans ce programme, j'aimerais pourvoir modifier une variable à l'aide d'un bouton dans une interface graphique. J'ai sûrement d'autres fautes, mais pour l'instant je ne les vois pas .

    Merci de votre temps.
    Fichiers attachés Fichiers attachés

  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,

    Vous pouvez juste déclarer une fonction qui sera appelée lorsqu'on clique sur le Button. Et cette fonction là peut très bien modifier une variable (globale).

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

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2019
    Messages : 3
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,

    Vous pouvez juste déclarer une fonction qui sera appelée lorsqu'on clique sur le Button. Et cette fonction là peut très bien modifier une variable (globale).

    - W
    Merci de votre aide , quelle fonction devrais-je utiliser ? j'ai penser à une lambda , mais je ne suis pas sur. De plus, j'ai essayer de faire une variable global, donc j'ai inscrit

    j=0
    o=0

    puis dans mes fonctions , j'ai inscrit

    global j
    global o

    Et la console me renvoie le message d'erreur suivant : "SyntaxError: name 'j' is parameter and global" que dois-je faire ?

  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
    Salut,

    Citation Envoyé par Snakiron Voir le message
    Et la console me renvoie le message d'erreur suivant : "SyntaxError: name 'j' is parameter and global" que dois-je faire ?
    Vous aviez un jeu qui fonctionnait en mode console et vous voulez lui donner une apparence plus sexy en utilisant une interface graphique.

    Problème, si vous avez écrit la fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    def ciseaux (o,j):
        global score_joueur
        global score_ordi
        if o == 3 and j == 1:
             score_joueur = score_joueur + 1
             print(f' Gagné, ton score est de : {score_joueur}')
        elif o == 3 and j == 2:
             score_ordi = score_ordi + 1
             print (f"Perdu, le score de l'ordinateur est: {score_ordi}")
        elif o == 3 and j == 3:
                 print ("Egalité")
        return score_joueur and score_ordi
    passons sur le fait que je ne comprends pas trop l'intérêt du mélange entre variable "globales" qu'on retourne... oui vous pouvez toujours utiliser lambda pour passer les (o, j) mais souvenez vous de la question initiale:
    j'aimerais pourvoir modifier une variable à l'aide d'un bouton dans une interface graphique.
    Est ce que vous modifiez o et j dans ces fonctions? non.
    Vous modifiez score_joueur et/ou score_ordi et ce sont déjà des variables globales.

    Le vrai soucis est de terminer le jeu (et donc remplacer tous ces "prints") et la logique qui récupère le return score_joueur and score_ordi qui n'a plus de sens puisque la fonction est devenue "callback" appelée par tkinter son retour ne vous est pas accessible.

    Et là malheureusement, passer d'un code qui dialogue avec la console à un code qui dialogue via une interface graphique, c'est pas compliqué mais c'est juste pas construit pareil. Donc il faut commencer par apprendre à programmer avec une interface graphique puis réfléchir à comment écrire un tout autre code pour ce contexte.

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

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2019
    Messages : 3
    Par défaut
    D'accord , vous m'avez été d'une grande aide, encore merci!

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

Discussions similaires

  1. Réponses: 15
    Dernier message: 29/06/2016, 08h25
  2. Réponses: 7
    Dernier message: 07/05/2010, 09h52
  3. fichier properties : modifier une variable (avec {0})
    Par dams78 dans le forum Général Java
    Réponses: 2
    Dernier message: 19/10/2009, 10h05
  4. changer la valeur d'une variable avec 2 bouton
    Par toutounesan_bg dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 03/08/2007, 10h51
  5. Réponses: 8
    Dernier message: 21/12/2006, 18h41

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