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

Tkinter Python Discussion :

somme de plusieurs entry dans un label avec trace


Sujet :

Tkinter Python

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 78
    Points : 43
    Points
    43
    Par défaut somme de plusieurs entry dans un label avec trace
    J'ai plusieurs Entry que je souhaite additionner. Le résultat est présenté dans un Label.

    Pour cela, j'utilise trace

    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
    import tkinter as tk
     
    def somme(*args):
        result.set(var1.get() + var2.get())
     
     
    root = tk.Tk()
     
    var1 = tk.IntVar()
     
    t1 = tk.Entry(root, textvariable=var1)
    t1.pack()
     
    var2 = tk.IntVar()
     
    t2 = tk.Entry(root, textvariable=var2)
    t2.pack()
     
    result = tk.IntVar()
    l = tk.Label(root, textvariable=result)
    l.pack()
     
    var1.trace('w', somme)
    var2.trace('w', somme)
     
     
    root.mainloop()
    j'ai réalisé un test avec 2 Entry... et j'ai l'erreur suivante :

    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
    Exception in Tkinter callback
    Traceback (most recent call last):
      File "C:\Users\ICAREX\AppData\Local\Programs\Python\Python38\lib\tkinter\__init__.py", line 535, in get
        return self._tk.getint(value)
    _tkinter.TclError: expected integer but got ""
     
    During handling of the above exception, another exception occurred:
     
    Traceback (most recent call last):
      File "C:\Users\ICAREX\AppData\Local\Programs\Python\Python38\lib\tkinter\__init__.py", line 1883, in __call__
        return self.func(*args)
      File "D:/Programmation/Test_sumEntry.py", line 4, in somme
        result.set(var1.get() + var2.get())
      File "C:\Users\ICAREX\AppData\Local\Programs\Python\Python38\lib\tkinter\__init__.py", line 537, in get
        return int(self._tk.getdouble(value))
    _tkinter.TclError: expected floating-point number but got ""
    d'avance merci

  2. #2
    Membre expérimenté
    Avatar de MPython Alaplancha
    Homme Profil pro
    Paysan à 3 francs six sous
    Inscrit en
    Juin 2018
    Messages
    882
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Paysan à 3 francs six sous
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2018
    Messages : 882
    Points : 1 545
    Points
    1 545
    Billets dans le blog
    4
    Par défaut
    Bonjour,
    Ton code fonctionne.
    A chaque changement de l'état de tes variables var1 et var2, la méthode trace() appelle ta fonction. Ton exeption: _tkinter.TclError: expected floating-point number but got "", apparait lorsque du vide le contenu de var1 ou var2. (il lui faut une valeur pour fonctionner)

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 78
    Points : 43
    Points
    43
    Par défaut
    merci pour la réponse

    y-a t-il un moyen pour éviter l'exception peut être avec if ?

    merci

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

    Citation Envoyé par aaristocat Voir le message
    y-a t-il un moyen pour éviter l'exception peut être avec if ?
    Initialiser les variables avec des valeurs par défaut serait une solution...
    Ceci dit, .trace va appeler "somme" pour chaque caractère entré par l'utilisateur et non après la saisie du nombre flottant.

    Ajouter un Button pour lancer le calcul serait plus normal (pour attendre la fin de la saisie) et utiliser des StringVar plutôt qu'espérer que l'utilisateur ait entré des nombre flottants corrects... serait plus judicieux.

    - W

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 78
    Points : 43
    Points
    43
    Par défaut
    merci pour la réponse

    les variables peuvent prendre les valeurs suivantes : 1 à 10

    j'ai testé le code en initialisant les variables de la sorte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var1.set(1)
    var2.set(2)
    et j'ai toujours l'exception...

    je vais probablement m'orienter vers votre solution du Button

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/03/2018, 12h54
  2. Réponses: 3
    Dernier message: 15/06/2009, 10h43
  3. (D7) Attacher plusieurs fichiers dans un mail avec mapifile
    Par mario9 dans le forum Composants VCL
    Réponses: 2
    Dernier message: 18/06/2008, 21h07
  4. [SWT] Centrer verticalement le texte dans un label avec SWT
    Par Poulpynette dans le forum SWT/JFace
    Réponses: 11
    Dernier message: 14/03/2008, 11h12
  5. Plusieurs formulaires dans un fichier avec plusieurs méthodes post
    Par cyberdevelopment dans le forum Langage
    Réponses: 2
    Dernier message: 17/08/2006, 15h04

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