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 :

Récupérer la valeur d'un entry


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 51
    Par défaut Récupérer la valeur d'un entry
    Voici mon pb, je veux juste récupérer la valeur d'une entry Tkinter avec la commande classique .get(). Quand j'exécute, je plante, il m'affiche que mon entry "has no attribute get". Pourtant je l'ai déjà fait sur un autre programme et ça marche. Voici mon code, merci de me dire si qqn sait ce que j'ai oublié :

    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
    # -*- coding: cp1252 -*-
     
    from Tkinter import *
     
    def rec_nb_elements():
        nb_elements=entry_nb_elements.get()
        fen_intro.quit()
     
    fen_intro=Tk()
     
    label_nb_elements=Label(fen_intro,text="Choisissez le nombre d'éléments à incorporer au modèle").pack()
    entry_nb_elements=Entry(fen_intro).pack()
    boutton_validation=Button(fen_intro,text='Valider',command=rec_nb_elements).pack()
    boutton_quitter=Button(fen_intro,text='Quitter',command=fen_intro.quit).pack()
     
    fen_intro.mainloop()
    fen_intro.destroy()

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 51
    Par défaut Modification de mon code
    J'ai modifié mon code pour remplacer mon entry par un scale et j'utilise la fonction .bind:, que j'ai déjà testée dans un autre programme et qui fonctionne :

    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
    # -*- coding: cp1252 -*-
     
    from Tkinter import *
     
    fenintro=Tk()
     
    def rec_nb_elements(event):
        nbelements=defnbelements.get()
        fenintro.quit()
     
    labelnbelements=Label(fenintro,text="Choisissez le nombre d'éléments à incorporer au modèle").pack()
     
    defnbelements=Scale(length=200,orient=HORIZONTAL,showvalue=1,from_=1,to=100,tickinterval=30).pack()
    defnbelements.bind("<Button-1>",recnbelements)
    defnbelements.bind("<B1-Motion>",recnbelements)
    defnbelements.bind("<ButtonRelease-1>",recnbelements)
     
    bouttonvalidation=Button(fenintro,text='Valider',command=recnbelements).pack()
    bouttonquitter=Button(fenintro,text='Quitter',command=fenintro.quit).pack()
     
    fenintro.mainloop()
    fenintro.destroy()

    Il me répond : "has no attribute .bind". C'est comme si il ne reconnaissait plus les fonctionnalités de Tkinter, auriez vous une idée de pourquoi?

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    222
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 222
    Par défaut
    Bonjour,
    Ton problème viens de là:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    defnbelements=Scale(length=200,orient=HORIZONTAL,showvalue=1,from_=1,to=100,tickinterval=30).pack()
    La méthode pack() retourne None. Donc defnbelements = None.

    Il faut procéder ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    defnbelements=Scale(length=200,orient=HORIZONTAL,showvalue=1,from_=1,to=100,tickinterval=30)
    defnbelements.pack()

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 51
    Par défaut Merci
    Ok merci, je vais modifier mon code comme ca quand je serai rentre chez moi. Effectivement, dans mon bout de programme precedent j'avais fait ca, les .pack() independemment de la creation de l'objet et ca fonctionnait.
    Je crois que je vais arreter ces techniques de tentatives de compresser le code. En tapant les lignes une par une, c'est peut etre un code plus long mais c plus clair et ca bug pas.

    Merci beaucoup en tout cas

Discussions similaires

  1. [Tkinter] récupérer une valeur d'un Entry
    Par Maude dans le forum Tkinter
    Réponses: 4
    Dernier message: 16/01/2006, 14h47
  2. récupérer la valeur du 2ème champ dans un DBLookUpListBox
    Par jakouz dans le forum Bases de données
    Réponses: 3
    Dernier message: 20/07/2004, 16h45
  3. Réponses: 2
    Dernier message: 03/06/2004, 08h32
  4. [Couleur] Récupérer les valeurs R,V,B et L,U,V ?
    Par M4v3rick dans le forum C++Builder
    Réponses: 4
    Dernier message: 25/01/2004, 03h28
  5. récupérer la valeur de sortie d'un thread
    Par jakouz dans le forum Langage
    Réponses: 3
    Dernier message: 31/07/2002, 11h28

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