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 :

Comment récupérer ce que l'utilisateur tape dans un Entry ?


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2011
    Messages : 5
    Par défaut Comment récupérer ce que l'utilisateur tape dans un Entry ?
    Bonjour. Voila, je travaille sur mon projet de fin d'année qui est un puissance 4. Mon problème est que je veux créer un système de fichier avant que le jeu ne commence afin d'enregistrer le pseudo du joueur et ses scores mais je n'arrive pas a récupérer le pseudo que l'utilisateur a tapé.
    Pouvez-vous m'aider svp ?

  2. #2
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    Bonjour,

    mais je n'arrive pas a récupérer le pseudo que l'utilisateur a tapé
    Ou, Quoi, Comment (Console, GUI, etc).
    Tout est possible à partir de là.

    @+

  3. #3
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    Bon, ok: Le truc de base puisque vous parlez d'Entry.
    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
    try:
        import Tkinter as Tk
    except:
        import tkinter as Tk
     
    def setlabel():
        label.config(text=entry.get())
     
    root = Tk.Tk()
    label = Tk.Label(root)
    entry = Tk.Entry(root)
    bouton = Tk.Button(root, text='Valid', command=setlabel)
    label.pack()
    entry.pack()
    bouton.pack()
    root.mainloop()

  4. #4
    Membre chevronné Avatar de Bear the french
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations forums :
    Inscription : Mai 2012
    Messages : 352
    Par défaut
    Bonjour,

    Même si ce n'est pas vraiment le sujet du fil et en rapport au code de PauseKawa :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    try:
        import Tkinter as Tk
    except:
        import tkinter as Tk
    Le fonctionnement en résumé :
    Dans un premier temps, cette clause d'essai est exécutée (clause try: les instructions entre les mots-clés try et except).
    S'il ne se produit pas d'erreur, la clause d'exception (clause except) est ignorée, et l'exécution du try est terminée.
    Si une erreur se produit à un moment de l'exécution de la clause d'essai, le reste de la clause try est ignoré.
    Puis si son type correspond à l'exception donnée après le mot-clé except, la clause except est exécutée, puis l'exécution reprend après l'instruction try.

    Le pourquoi de cette clause d'essai :
    Tkinter porte une minuscule avec Python 3 et une majuscule avec Python 2.x.

    C'est donc une façon astucieuse de rendre compatible les codes Tkinter sous les deux versions. Et cette astuce, toute simple, me plait. C'est sans doute basique pour les habitués

    Je vais pouvoir inclure ce bout de code dans mes mini-scripts Tkinter.

    Donc mon post est plus une réflexion personnelle qu'une réponse. Mais comme ça peut être utile à d'autres débutants, je partage...

    Bertrand

  5. #5
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    C'est quand même de l'écriture rapide ou l'on ne précise pas l'erreur attendue.
    une version plus 'propre' en serait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    try:
        import Tkinter as Tk
    except ImportError:
        import tkinter as Tk
    Note: as Tk permettant de repérer plus facilement le code, et reste en accord avec Tkinter qui commence les noms avec une majuscule (Canvas, Tk etc).
    Maintenant vu que cela viens de la Version de Python il est possible de se passer du cache misère try/except
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >>> from platform import python_version
    >>> if python_version().startswith('2'):
    ...     import Tkinter as Tk
    ... else:
    ...     import tkinter as Tk
    if remplace try/except avantageusement dans de nombreux cas et a pour avantage d’être explicite et de ne pas cacher les autres erreurs.

    @+

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

    Citation Envoyé par Bear the french Voir le message
    Le pourquoi de cette clause d'essai :
    Tkinter porte une minuscule avec Python 3 et une majuscule avec Python 2.x.

    C'est donc une façon astucieuse de rendre compatible les codes Tkinter sous les deux versions. Et cette astuce, toute simple, me plait. C'est sans doute basique pour les habitués
    Il serait plus "clair" d'écrire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    import sys
    running_python3 = sys.version_info.major > 2
    if running_python3:
          import tkinter as tk
    else:
          import Tkinter as tk
    Cela associe la variable "tk" au module attendu indépendamment de la version de Python (enfin c'est l'intention).
    Et la préférence à "tk" sans majuscule car c'est un nom de "module" et non un nom de "classe".
    Notez que les changements dans la construction des classes du module ayant changé entre V2 et V3, cela ne suffit pas à rendre toutes les constructions "compatibles"!
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  7. #7
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    Exact: Pas besoin de platform, autant passer directement par le module sys.

    Par contre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    running_python3 = sys.version_info.major > 2
    Sauf utilisation de la variable pas besoin de stocker l'information.
    De même l'information est en double (running_python3 et sys.version_info[0]).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >>> from sys import version_info
    >>> if version_info.major[0] > 2:
    ...    import tkinter as Tk
    ... else:
    ...    import Tkinter as Tk
    Mais j'aime bien le True/False du if running_python3:

    Ok pour donner du PEP8 mais je trouve plus visuel le 'T' majuscule.
    C'est vrais que cela tend a se rationaliser avec Python 3 (tkinter etc) mais on reste, pour le principe de compatibilité, avec des noms du style Canvas, Frame, IntVar (etc... Volonté de différencier l'objet Python de celui Tcl/TK ? Canvas != canvas ?).

    Enfin: Querelles de clocher et le True/False est très bien.

    @+

  8. #8
    Membre chevronné Avatar de Bear the french
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations forums :
    Inscription : Mai 2012
    Messages : 352
    Par défaut
    Bonjour,

    En fait de "plus clair", j'aurai du dire "apparemment plus simple et court"

    Face à ce problème chronique, j'utilisais la méthode artisanale du "trouve et remplace" (dans mon éditeur, menu Edit, sous-menu Replace). Je remplaçais ainsi tkinter par Tkinter.

    J'ai noté la version du code ci-dessous comme étant la bonne (celle qui recueille le consensus) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    import sys
    running_python3 = sys.version_info.major > 2
    if running_python3:
          import tkinter as tk
    else:
          import Tkinter as tk
    Merci pour vos interventions

    Bertrand

Discussions similaires

  1. Réponses: 4
    Dernier message: 07/08/2006, 17h01
  2. Réponses: 1
    Dernier message: 04/07/2006, 16h35
  3. Réponses: 6
    Dernier message: 14/06/2006, 16h55
  4. Réponses: 4
    Dernier message: 01/05/2006, 23h02
  5. Comment récupérer la valeur d'un dbGrid dans des fenêtres MDI ?
    Par sylvie cl dans le forum Composants VCL
    Réponses: 5
    Dernier message: 19/07/2005, 13h42

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