Récupérer et utiliser valeur Entry

Résolu
user_3022 Messages postés 12 Statut Membre -  
 Utilisateur anonyme -

Bonjour, ce programme n'est pas terminé mais il donne un message d'erreur quand je le lance je n'arrive pas à utiliser les valeurs Entry est-ce que quelqu'un a une solution ?

from tkinter import *
from tkinter import messagebox
from tkinter import ttk
import string

# Create an instance of tkinter frame
win= Tk()

# Set the size of the tkinter window
win.geometry("700x600")

frame = Frame(win, bg='white')

def total():
   nbr_report = int(nombre_reportage.get())
   prix_report = int(prix_reportage.get(frame))
   nbr_sup_image = int(nombre_supplément_image.get(frame))
   prix_sup_image = int(prix_supplément_image.get(frame))
   taxe = int(TVA.get(frame))
   inf = int(inflation.get(frame))
   p_deplacement = int(prix_deplacement.get(frame))
   reduc = int(reduction.get(frame))

   montant_brute= ((((nbr_report*prix_report)+(nbr_sup_image*prix_sup_image)+p_deplacement-reduc)*(inf))/100)
   montant_ttc = ((montant_brute* (taxe)/100))
   print(montant_brute)
   print(montant_ttc)

def button_click():
   pass


label_title = Label(frame,text="TVA en %",font=("Helvetica", 15),bg='white',fg='black')
label_title.pack()

TVA = Entry(frame,font=("Helvetica", 20),bg='white',fg='black',bd=1 )
TVA.pack()

label_subtitle = Label(frame,text="nombre reportage",font=("Helvetica", 15),bg='white',fg='black')
label_subtitle.pack()

nombre_reportage= Entry(frame,font=("Helvetica", 20),bg='white',fg='black',bd=1 )
nombre_reportage.pack()

label_subtitle = Label(frame,text="Prix/reportage",font=("Helvetica", 15),bg='white',fg='black')
label_subtitle.pack()

prix_reportage = Entry(frame,font=("Helvetica", 20),bg='white',fg='black',bd=1 )
prix_reportage.pack()

label_subtitle = Label(frame,text="nombre suppléments image",font=("Helvetica", 15),bg='white',fg='black')
label_subtitle.pack()
nombre_supplément_image = Entry(frame,font=("Helvetica", 20),bg='white',fg='black',bd=1 )
nombre_supplément_image.pack()

label_subtitle = Label(frame,text="Prix/suppléments image",font=("Helvetica", 15),bg='white',fg='black')
label_subtitle.pack()
prix_supplément_image = Entry(frame,font=("Helvetica", 20),bg='white',fg='black',bd=1 )
prix_supplément_image.pack()

label_subtitle = Label(frame,text="inflation en %",font=("Helvetica", 15),bg='white',fg='black')
label_subtitle.pack()
inflation = Entry(frame,font=("Helvetica", 20),bg='white',fg='black',bd=1 )
inflation.pack()

label_subtitle = Label(frame,text="Coûts déplacements",font=("Helvetica", 15),bg='white',fg='black')
label_subtitle.pack()
prix_deplacement = Entry(frame,font=("Helvetica", 20),bg='white',fg='black',bd=1 )
prix_deplacement.pack()

label_subtitle = Label(frame,text="Réduction en €",font=("Helvetica", 15),bg='white',fg='black')
label_subtitle.pack()
reduction= Entry(frame,font=("Helvetica", 20),bg='white',fg='black',bd=1 )
reduction.pack()


ttk.Button(win, text= "When you are finish click here", command=total()).pack(pady= 20, side=BOTTOM)


frame.pack(side =TOP)
win.mainloop()
total()

5 réponses

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     

    bonjour,

    en ligne 77, tu écris "command=total()".

    Si tu veux que la fonction total soit appelée quand le bouton est cliqué, il faut écrire "command=total".

    1
    1. user_3022 Messages postés 12 Statut Membre
       

      merci  mais ça ne règle pas le problème de la récupération des Entry^^

      0
  2. Utilisateur anonyme
     

    Bonjour

    Pour déboguer par soi-même ou avec l'aide du forum

    1. Ne pas poster de messages en doublon
    2. Éviter d'avoir des avertissements partout dans le code, quand j'ai copié collé ton code, toutes les 3 ou 4 lignes, j'avais un panneau avec un message qui dit en gros, je ne connais pas tel mot clé, j'espère qu'il vient du import * plus haut, mais si ce n'est pas le cas ça va planter
    3. lire le message d'erreur, il t'indique quelle ligne est concernée, en général, il y a le n° de ligne et son code
    4. essayer d'analyser
      1. aller sur la ligne désigné par le message d'erreur
      2. tâcher de comprendre l'origine de l'erreur
      3. lire la documentation des objets / méthodes / fonctions etc.. utilisées sur cette ligne pour voir si on n'y trouve pas un début de solution
      4. chercher des exemples d'utilisation de ces objets / méthodes / fonctions
    5. si on n'y arrive pas, copier-coller le message d'erreur sur le forum avec la question et le code.
      1. Ça évite de recevoir une réponse sur un autre problème du code que celui qu'on cherche
      2. Ça peut suffire au lecteur pour répondre au moins partiellement, typiquement là, je t'aurais répondu, ça plante à la ligne 16, mais pas à la 15, quelle est la différence entre ces 2 lignes ?

    0
    1. user_3022 Messages postés 12 Statut Membre
       
      from tkinter import *
      from tkinter import ttk
      
      
      # Create an instance of tkinter frame
      win = Tk()
      
      # Set the size of the tkinter window
      win.geometry("700x600")
      
      frame = Frame(win, bg='white')
      
      def total():
         nbr_report = int(nombre_reportage.get())
         prix_report = int(prix_reportage.get())
         nbr_sup_image = int(nombre_supplement_image.get())
         prix_sup_image = int(prix_supplement_image.get())
         taxe = int(TVA.get())
         inf = int(inflation.get())
         p_deplacement = int(prix_deplacement.get())
         reduc = int(reduction.get())
      
         montant_brute= ((((nbr_report*prix_report)+(nbr_sup_image*prix_sup_image)+p_deplacement-reduc)*(inf))/100)
         montant_ttc = ((montant_brute* (taxe)/100))
         print(montant_brute)
         print(montant_ttc)
      
      def button_click():
         pass
      
      
      label_title = Label(frame,text="TVA en %",font=("Helvetica", 15),bg='white',fg='black')
      label_title.pack()
      
      TVA = Entry(frame,font=("Helvetica", 20),bg='white',fg='black',bd=1 )
      TVA.pack()
      
      label_subtitle = Label(frame,text="nombre reportage",font=("Helvetica", 15),bg='white',fg='black')
      label_subtitle.pack()
      
      nombre_reportage= Entry(frame,font=("Helvetica", 20),bg='white',fg='black',bd=1 )
      nombre_reportage.pack()
      
      label_subtitle = Label(frame,text="Prix/reportage",font=("Helvetica", 15),bg='white',fg='black')
      label_subtitle.pack()
      
      prix_reportage = Entry(frame,font=("Helvetica", 20),bg='white',fg='black',bd=1 )
      prix_reportage.pack()
      
      label_subtitle = Label(frame,text="nombre suppléments image",font=("Helvetica", 15),bg='white',fg='black')
      label_subtitle.pack()
      nombre_supplement_image = Entry(frame,font=("Helvetica", 20),bg='white',fg='black',bd=1 )
      nombre_supplement_image.pack()
      
      label_subtitle = Label(frame,text="Prix/suppléments image",font=("Helvetica", 15),bg='white',fg='black')
      label_subtitle.pack()
      prix_supplement_image = Entry(frame,font=("Helvetica", 20),bg='white',fg='black',bd=1 )
      prix_supplement_image.pack()
      
      label_subtitle = Label(frame,text="inflation en %",font=("Helvetica", 15),bg='white',fg='black')
      label_subtitle.pack()
      inflation = Entry(frame,font=("Helvetica", 20),bg='white',fg='black',bd=1 )
      inflation.pack()
      
      label_subtitle = Label(frame,text="Coûts déplacements",font=("Helvetica", 15),bg='white',fg='black')
      label_subtitle.pack()
      prix_deplacement = Entry(frame,font=("Helvetica", 20),bg='white',fg='black',bd=1 )
      prix_deplacement.pack()
      
      label_subtitle = Label(frame,text="Réduction en €",font=("Helvetica", 15),bg='white',fg='black')
      label_subtitle.pack()
      reduction= Entry(frame,font=("Helvetica", 20),bg='white',fg='black',bd=1 )
      reduction.pack()
      
      
      ttk.Button(win, text= "When you are finish click here", command=total).pack(pady= 20, side=BOTTOM)
      
      
      frame.pack(side =TOP)
      win.mainloop()
      total()

      voici le code avec moins d'erreurs

      0
      1. user_3022 Messages postés 12 Statut Membre > user_3022 Messages postés 12 Statut Membre
         

        voici le code erreur :

        Traceback (most recent call last):
          File "/Users/kalixarekos/PycharmProjects/Devis/main.py", line 81, in <module>
            total()
          File "/Users/kalixarekos/PycharmProjects/Devis/main.py", line 14, in total
            nbr_report = int(nombre_reportage.get())
          File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/tkinter/__init__.py", line 3043, in get
            return self.tk.call(self._w, 'get')
        _tkinter.TclError: invalid command name ".!frame.!entry2"

        0
  3. Utilisateur anonyme
     

    Avec ton nouveau code, je n'ai pas de message d'erreur, j'ai bien 2 résultats affichés (faux à mon avis, mais c'est un autre problème).

    Par contre, il y a toujours autant d'avertissements


    0
    1. user_3022 Messages postés 12 Statut Membre
       
      from tkinter import *
      from tkinter import ttk
      
      
      # Create an instance of tkinter frame
      win = Tk()
      
      # Set the size of the tkinter window
      win.geometry("700x600")
      
      frame = Frame(win, bg='white')
      
      def total():
          nbr_report = int(nombre_reportage.get())
          prix_report = int(prix_reportage.get())
          nbr_sup_image = int(nombre_supplement_image.get())
          prix_sup_image = int(prix_supplement_image.get())
          taxe = int(TVA.get())
          inf = int(inflation.get())
          p_deplacement = int(prix_deplacement.get())
          reduc = int(reduction.get())
      
          montant_brute = ((((nbr_report*prix_report)+(nbr_sup_image*prix_sup_image)+p_deplacement-reduc)*inf)/100)
          montant_ttc = ((montant_brute * taxe)/100)
          print(montant_brute)
          print(montant_ttc)
      
      def button_click():
          pass
      
      
      label_title = Label(frame, text="TVA en %", font=("Helvetica", 15), bg='white', fg='black')
      label_title.pack()
      
      TVA = Entry(frame, font=("Helvetica", 20), bg='white', fg='black', bd=1)
      TVA.pack()
      
      label_subtitle = Label(frame, text="nombre reportage", font=("Helvetica", 15), bg='white', fg='black')
      label_subtitle.pack()
      
      nombre_reportage = Entry(frame, font=("Helvetica", 20), bg='white', fg='black', bd=1)
      nombre_reportage.pack()
      
      label_subtitle = Label(frame, text="Prix/reportage", font=("Helvetica", 15), bg='white', fg='black')
      label_subtitle.pack()
      
      prix_reportage = Entry(frame, font=("Helvetica", 20), bg='white', fg='black', bd=1)
      prix_reportage.pack()
      
      label_subtitle = Label(frame, text="nombre suppléments image", font=("Helvetica", 15), bg='white', fg='black')
      label_subtitle.pack()
      nombre_supplement_image = Entry(frame, font=("Helvetica", 20), bg='white', fg='black', bd=1)
      nombre_supplement_image.pack()
      
      label_subtitle = Label(frame, text="Prix/suppléments image", font=("Helvetica", 15), bg='white', fg='black')
      label_subtitle.pack()
      prix_supplement_image = Entry(frame, font=("Helvetica", 20), bg='white', fg='black', bd=1)
      prix_supplement_image.pack()
      
      label_subtitle = Label(frame, text="inflation en %", font=("Helvetica", 15), bg='white', fg='black')
      label_subtitle.pack()
      inflation = Entry(frame, font=("Helvetica", 20), bg='white', fg='black', bd=1)
      inflation.pack()
      
      label_subtitle = Label(frame, text="Coûts déplacements", font=("Helvetica", 15), bg='white', fg='black')
      label_subtitle.pack()
      prix_deplacement = Entry(frame, font=("Helvetica", 20), bg='white', fg='black', bd=1)
      prix_deplacement.pack()
      
      label_subtitle = Label(frame, text="Réduction en €", font=("Helvetica", 15), bg='white', fg='black')
      label_subtitle.pack()
      reduction = Entry(frame, font=("Helvetica", 20), bg='white', fg='black', bd=1)
      reduction.pack()
      
      
      ttk.Button(win, text="When you are finish click here", command=total).pack(pady=20, side=BOTTOM)
      
      
      frame.pack(side=TOP)
      win.mainloop()
      total()

      j'arrive pas à corriger les 2 derniers une idée ?

      0
      1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > user_3022 Messages postés 12 Statut Membre
         

        Quels deux derniers?

        0
      2. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > user_3022 Messages postés 12 Statut Membre
         

        Qu'essaies-tu de réaliser?
        Pourquoi ce code en ligne 81?

        1
      3. user_3022 Messages postés 12 Statut Membre > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
         

        Whismeril  m'embête avec les messages d'avertissements

        0
  4. user_3022 Messages postés 12 Statut Membre
     

    c'est bon le problème est réglé

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

    Posez votre question
  6. Utilisateur anonyme
     

    Désolé de t'embêter à essayer de te faire coder correctement.

    Après si tu considères qu'un faux résultat correspond à ce que tu veux alors

    c'est bon le problème est réglé

    On pourrait à ce que le montant brut soit 100 et le montant TTC 120, qu'en penses-tu ?

    Ce n'est pas plus concluant avec un peu d'inflation.

    Testé avec le code de 19:47


    0