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

Discussion: Récupéré la valeur String d'une entry [Python 3.X]

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    novembre 2018
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 18
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : novembre 2018
    Messages : 22
    Points : 18
    Points
    18

    Par défaut Récupéré la valeur String d'une entry

    Bonjour, bonjour !

    Me voici confronté à un problème tellement ridicule depuis plusieurs jours. En bref j'ai un projet de labyrinthe ou j'aimerai que le joueur X rentre un nom d'utilisateur en début de partie, le problème étant que je n'arrive pas du tout à récupéré une valeur de type String dans une entry à l'aide J'ai regardé partout sur internet, j'ai essayer un paquet d'astuce et je ne trouve vraiment pas...

    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
    from tkinter import *
    from random import *
     
    def valid_enter():
        test = user.get()
        utilisateur.set(test)
        test2 = Label(utilisateur)
        test2.place(x=50,y=50)
     
    main = Tk()
    main.resizable(width=False, height=False) #Interdit le redimenssionnage
     
    main.title("Labyrinthe")
    #w,h = main.winfo_screenwidth(), main.winfo_screenheight() #w,h = main.on prend la taille de la largeur de la fenetre, main...... hauteur
    main.geometry("720x480+285+180")
    user = StringVar()
    user.set("Utilisateur")
    utilisateur = StringVar()
    enter_user = Entry(main, textvariable=user)
    enter_user.place(x=260,y=100)
     
     
    valid = Button(main,text="Valider", command=valid_enter)
    valid.place(x=300,y=150)
     
     
    main.mainloop()

  2. #2
    Membre éprouvé

    Homme Profil pro
    ValueError
    Inscrit en
    avril 2016
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : ValueError

    Informations forums :
    Inscription : avril 2016
    Messages : 691
    Points : 1 020
    Points
    1 020
    Billets dans le blog
    1

    Par défaut

    Salut.

    Ton problème est ici.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    test2 = Label(utilisateur)
    Le Label demande comme parent un widget pas une StringVar, celle-ci doit être, comme pour Entry passé au paramètre textvarable.
    Le temps ronge l'amour comme l'acide.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    novembre 2018
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 18
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : novembre 2018
    Messages : 22
    Points : 18
    Points
    18

    Par défaut

    Salut !

    Merci de ta réponse, je ne vois pas en quoi ceci est un problème, de plus c'est simplement une ligne test. Mon problème ici est vraiment de récupéré la valeur String dans l'entry.

    Merci

  4. #4
    Membre éprouvé

    Homme Profil pro
    ValueError
    Inscrit en
    avril 2016
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : ValueError

    Informations forums :
    Inscription : avril 2016
    Messages : 691
    Points : 1 020
    Points
    1 020
    Billets dans le blog
    1

    Par défaut

    Tu l'as déjà cette valeur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    def valid_enter():
        test = user.get()
        print(test)
    Si ce n'est pas un problème que python te jette une erreur, tu ne vas pas allez bien loin si tu en fais abstraction
    Le temps ronge l'amour comme l'acide.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    novembre 2018
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 18
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : novembre 2018
    Messages : 22
    Points : 18
    Points
    18

    Par défaut

    Je te remercie !

    Je ne comprend pas comment cela ce fait car la ligne actuel que j'ai je l'ai déjà essayer et elle m'étais indiqué comme erronée

    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
    from tkinter import *
    from random import *
     
    def valid_enter():
        test = user.get()
        if test !="":
            print("Erreur! Il faut indiqué un nom d'utilisateur !!")
        else:
            print(test)
            enter_user.delete(0,END)
     
     
    main = Tk()
    main.resizable(width=False, height=False) #Interdit le redimenssionnage
     
    main.title("Labyrinthe")
    #w,h = main.winfo_screenwidth(), main.winfo_screenheight() #w,h = main.on prend la taille de la largeur de la fenetre, main...... hauteur
    main.geometry("720x480+285+180")
    user = StringVar()
    user.set("Utilisateur")
    enter_user = Entry(main, textvariable=user)
    enter_user.place(x=260,y=100)
     
     
    valid = Button(main,text="Valider", command=valid_enter)
    valid.place(x=300,y=150)
     
     
    main.mainloop()
    Je suis désormais à la recherche d'une façons de vérifier qu'il y a au moins 1 caractère sauf seulement ESPACE je vais chercher Bonne soirée

  6. #6
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Développeur python
    Inscrit en
    juillet 2006
    Messages
    2 767
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur python
    Secteur : Santé

    Informations forums :
    Inscription : juillet 2006
    Messages : 2 767
    Points : 4 596
    Points
    4 596

    Par défaut

    Ligne 6 tu indiques une condition où si test existe (donc si on écrit dans le widget Entry), on affiche une erreur...

    Peut-être voulais-tu écrire,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if not test:
        # blabla
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

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

Discussions similaires

  1. Réponses: 16
    Dernier message: 18/01/2016, 18h54
  2. Réponses: 11
    Dernier message: 30/10/2007, 09h35
  3. JButton en fonction d'une valeur String
    Par henry.schmitt dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 04/09/2006, 00h46
  4. récupérer une valeur String, est-ce correct.
    Par LESOLEIL dans le forum Langage
    Réponses: 2
    Dernier message: 06/04/2006, 10h56
  5. Réponses: 2
    Dernier message: 04/04/2006, 08h37

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