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

Programmation multimédia/Jeux Python Discussion :

Aide pour obtenir une information avec .get()


Sujet :

Programmation multimédia/Jeux Python

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 27
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Aide pour obtenir une information avec .get()
    Bonjour, j'espere que vous passez de bonnes fêtes.
    Voila pour ces vacances nous avons eu en IPT un projet "jeux", je dois programmer Kilkenny cats (un espece de jeu d'echec...) or j'ai un problème dès le début.
    En effet le jeu doit pouvoir se jouer à deux ou à quatre donc avec tkinter (qu'on n'a pas vu en cours) j'ai essayé de créer une fenetre qui propose deux choix : mode 2 joueurs ou 4 joueurs, mais je n'arrive pas à afficher quelle case a été cochée avec get(). Quand je faisais print(var_choix) ça ne me mettait pas du tout le resultat souhaité... Idem quand j'ai fait une fonction avec des if var_choix==....
    J'aurai donc besoin d'aide s'il vous plait
    Trève de blabla voici l'ossature de mon code

    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
    # On crée une fenêtre,de l' interface
    fenetre = Tk()
    # On crée un label (
    champ_label = Label(fenetre, text="Bienvenu sur Kilkenny cats ! Combien de joueurs êtes vous ?")
    # On affiche le label dans la fenêtre
    champ_label.pack()
    #Definir les choix des nombres de joueurs
    var_choix = StringVar()
    #Cocher le choix de deux joueurs
    choix_2 = Radiobutton(fenetre, text="2", variable=var_choix, value="rouge")
    #Cocher le choix de quatre joueurs
    choix_4 = Radiobutton(fenetre, text="4", variable=var_choix, value="vert")
    choix_2.pack()
    choix_4.pack()
    #Valider le choix
    bouton=Button(fenetre, text="Valider", command=fenetre.destroy) 
    bouton.pack()    
    #La fonction revoie quel choix a été selectionné
    var_choix.get()
    fenetre.mainloop() 
    #On ouvre la deuxième fenetre "Fenetre" avec le nom des joueurs
    Fenetre = Tk()
    #Creation des lignes qui peuvent accueillir le nom des joueurs (dans le cas de deux joueurs)
    var_texte = StringVar()
    ligne_texte_1 = Entry(Fenetre, textvariable_1=var_texte, width=30)
    ligne_texte_1.pack()
    ligne_texte_2 = Entry(Fenetre, textvariable_2=var_texte, width=30)
    ligne_texte_2.pack()
     
    # On démarre la boucle Tkinter avec la Fenetre
    Fenetre.mainloop()
    Merci d'avance

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

    Vu votre code, vous avez sans doute loupé quelques marches.
    Tout d'abord, comment çà fonctionne.
    Lancez la console Python et on fabrique 2 Radiobutton qu'on affiche:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    >>> from tkinter import *
    >>> root = Tk()
    >>> choix = StringVar(value='2')
    >>> b1 = Radiobutton(text='4', variable=choix, value='4')
    >>> b2 = Radiobutton(text='2', variable=choix, value='2')
    >>> b1.pack()
    >>> b2.pack()
    Jusque là, rien de bien compliqué.
    Vous devez voir le Radiobuttonoù text='2' selectionné.
    Si vous tapez choix.get(), çà donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> choix.get()
    '2'
    >>>
    Après avoir cliqué sur '4', vous obtenez:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> choix: 4
    choix.get()
    '4'
    Dans cette histoire, vous attendez la mise à jour côté interface "avant" d'aller lire la variable "choix". Et vous êtes maître de l'organisation de la séquence des évènements "souris"/"clavier" et de l'action choix.get().
    Si vous partez dans root.mainloop(), c'est tkinter qui organisera la séquence d'action à exécuter en fonction des evènements.
    Ces actions doivent être des fonctions (appelées "callback") que l'on va associer aux évènements.
    Pour continuer l'exemple, on peut ajouter la fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> def get_choix():
    ...     print ('choix:', choix.get())
    ...
    Avec un Radiobutton, l'évènement sera "l'utilisateur à cliqué sur le button".
    Pour appeler la fonction get_choix lorsque l'évènement se produit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    >>> b1['command'] = get_choix
    >>> b2['command'] = get_choix
    Vous pouvez alors lancer la mainloop et récupérer la valeur de choix...

    Pour essayer de comprendre tout çà à tête reposée, il y a des tutos comme le Swinnen. Le chapitre 10 vous donne quelque indication sur la programmation événementielle avec tkinter.
    Si c'est le chapitre 10, c'est qu'il y a plein de choses à connaître et à maîtriser avant de se lancer là dedans (fonctions, variable locales/globales,....) .

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

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 27
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Merci pour cette réponse si complète, je vais voire ça !

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

Discussions similaires

  1. [XL-2010] Aide pour finaliser une rechercheV avec plusieurs valeurs
    Par roadruner dans le forum Excel
    Réponses: 3
    Dernier message: 12/07/2012, 22h42
  2. Réponses: 0
    Dernier message: 09/03/2012, 18h38
  3. Aide pour transformer une chaine avec sed
    Par progfou dans le forum Linux
    Réponses: 9
    Dernier message: 14/10/2009, 09h32
  4. Besoin d'aide pour réaliser une classe avec du css
    Par Winjet dans le forum Mise en page CSS
    Réponses: 29
    Dernier message: 24/04/2009, 11h01
  5. Réponses: 22
    Dernier message: 20/05/2008, 10h25

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