[python] récupérer des valeurs or d'Entry

Fermé
Maude - 14 janv. 2006 à 13:54
 mohamed - 16 janv. 2006 à 18:02
Bonjour,

Pourriez-vous m'aider à récupérer les valeurs entrées dans des Entry par l'utilisateur ?

exemple: en graphique (Tkinter) j'ai 3 Entry. Les valeurs entrées dans ces Entry doivent être récupérées pour qu'une fonction renvoie le résultat dans un Label.

Merci
A voir également:

10 réponses

Re,

Personne ne peut vraiment pas m'aider ?

Je me suis peut être malexprimée:

Voila ce que je veux faire:

Je crée une interface graphique avec Tkinter.
J'y mets 3 zone de texte(Entry)
Les données entrées par l'utilisateur dans ces zones de texte, doivent être converties en numériques afin de faire des calculs avec.

Comment puis-je convertir ces données ?

Un truc dans le style : montant = eval(entree1.get())

C'est quand je dois utiliser ces données dans une formule que ça se complique.

Merci pour votre aide.
1
kilian Messages postés 8732 Date d'inscription vendredi 19 septembre 2003 Statut Non membre Dernière intervention 5 février 2025 1 526
14 janv. 2006 à 23:48
Salut,

Tu veux dirte que tu les récupères en chaine de caractère et tu veux les valeurs entières ou réelles?

En ce cas tu peux faire une simple conversion avec int() ou float() par exemple.
Exemple, int("2") te renverra 2.
1
kilian Messages postés 8732 Date d'inscription vendredi 19 septembre 2003 Statut Non membre Dernière intervention 5 février 2025 1 526
14 janv. 2006 à 23:49
A moins que tu aies déjà des methodes du genre getint() ou getfloat() dans TKinter.
1
Merci,

Le problème c'est que je ne connais pas à l'avance ce que l'utilisateur va entrer comme données dans les zones de texte. Donc, je ne peux pas faire int("3")
éventuellement int(entree1.get()) Mais je ne sais pas. Je vais essayer on verra bien.

Normalement, il dvrait y avoir aussi un truc comme entree1.bind()

merci
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kilian Messages postés 8732 Date d'inscription vendredi 19 septembre 2003 Statut Non membre Dernière intervention 5 février 2025 1 526
15 janv. 2006 à 00:53
Ah c'est un champs prévu pour qu'on y entre des chaines comme des chiffres?

Ben là il faudra faire une vérification caractère par caractère pour determiner si ce que la personne entre est un nombre ou une phrase.

Les codes ascii des caractères 0 à 9 sont compris entre 48 et 57.
Tu peux aussi faire une vérification sur le "." au cas ou la personne entre un nombre réel. Avec ord tu as le code ascii d'un caractère:
def verif(chaine):
         float_range=range(48,58)
         float_range.append(ord("."))
         for caractere in chaine:
                if ord(caractere) not in float_range:
                        return False
         return True

Voilà, si ta chaine est un entier ou un float, ça retournera True.
Il faudrait l'affiner, puisqu'elle retournera True même si on ecris "1458.5465.44....." mais au moins tu as une piste.

Une autre manière de faire serait:
try:
         int(chaine)
except ValueError:
        # Truc à faire si la conversion n'est pas possible (car il n'y a pas que des nombres)
1
Merci kilian,

Tu es merveilleusement charitable et ta patience m'ébloui.
Mais, je crois qu'on ne s'est pas bien compris.

Sous python, quand on saisi qlqchose dans une zone de texte, le langage considère cette saisie comme une chaîne de caractère. Comme il est impossible de multiplier, diviser des chaines, je dois avant d'appeler une fonction convertir les chaînes en caractères numériques.
ex: la personne tappe 123, python le considère comme "123" et non comme 123.
Quand je fais ce qui suit dans l terminal, ça marche. pourquoi cel ane marche-t-il pas en mode graphique ?

>>>a="123"
>>>b="123"
>>>c=eval(a)+eval(b)
>>>print c
256

C'est exemple est simpliste mais c'est ce que je voudrais faire avec 3 zones de saisies. Les convertir avant d'appeler ma fonction.
Mais quans je tappe : montant = eval(entree1.get()) Il me dit que montant n'a pas été déclaré

Enfin, voilà... Lol
encore merdi
1
kilian Messages postés 8732 Date d'inscription vendredi 19 septembre 2003 Statut Non membre Dernière intervention 5 février 2025 1 526
15 janv. 2006 à 15:22
Ben, avec la solution que j'ai mis au dessus ça devrait être bon (avec le try/except ce sera plus facile).

Tu es merveilleusement charitable et ta patience m'ébloui.

C'est exact.
1
Il n'y a décidément pas moyen de se comprendre lol!

Dans tout ce que tu m'as dit, il n'y a rien qui me permette d'extraire ce que l'utilisateur a saisi.
Tu me donnes le moyen de controler, mais pas de récupérer.

si j écris une fonction comme suit :

def copiage():
ofi=open("monfichier.doc",'a')
ofi.write(entr1.get())
ofi.close()
bou=Button(fen,text="copier",command=copiage)

Là, je vais récupérer ce que l'utilisateur a saisi dans la zone de texte et je vais l écrire dans un fihier texte.

Donc, dans le même ordre d'idée, j'aimerais récupérer ce que des gens vont écrire dans mes zone de texte afin de m'en servir pour effectuer un calcul dont le résultat sera envoyé dans un Label.

Voilà et encore merci
1
kilian Messages postés 8732 Date d'inscription vendredi 19 septembre 2003 Statut Non membre Dernière intervention 5 février 2025 1 526
15 janv. 2006 à 16:12
Ben si tu peux recupérer ça avec la methode get(), je ne comprend pas ce qui manque...
1
Bonjour ma belle fleur

je te le donne le python si tu mais ton msn
1