Récupérer et utiliser valeur Entry

Résolu/Fermé
user_3022 Messages postés 11 Date d'inscription dimanche 4 décembre 2022 Statut Membre Dernière intervention 19 avril 2023 - 4 déc. 2022 à 15:21
Whismeril Messages postés 19030 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 27 avril 2024 - 4 déc. 2022 à 21:38

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

yg_be Messages postés 22731 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2024 1 477
4 déc. 2022 à 15:45

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
user_3022 Messages postés 11 Date d'inscription dimanche 4 décembre 2022 Statut Membre Dernière intervention 19 avril 2023
4 déc. 2022 à 16:02

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

0
Whismeril Messages postés 19030 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 27 avril 2024 931
4 déc. 2022 à 18:55

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
user_3022 Messages postés 11 Date d'inscription dimanche 4 décembre 2022 Statut Membre Dernière intervention 19 avril 2023
4 déc. 2022 à 19:06
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
user_3022 Messages postés 11 Date d'inscription dimanche 4 décembre 2022 Statut Membre Dernière intervention 19 avril 2023 > user_3022 Messages postés 11 Date d'inscription dimanche 4 décembre 2022 Statut Membre Dernière intervention 19 avril 2023
4 déc. 2022 à 19:07

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
Whismeril Messages postés 19030 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 27 avril 2024 931
Modifié le 4 déc. 2022 à 19:19

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
user_3022 Messages postés 11 Date d'inscription dimanche 4 décembre 2022 Statut Membre Dernière intervention 19 avril 2023
4 déc. 2022 à 19:47
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
yg_be Messages postés 22731 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2024 1 477 > user_3022 Messages postés 11 Date d'inscription dimanche 4 décembre 2022 Statut Membre Dernière intervention 19 avril 2023
4 déc. 2022 à 20:16

Quels deux derniers?

0
yg_be Messages postés 22731 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2024 1 477 > user_3022 Messages postés 11 Date d'inscription dimanche 4 décembre 2022 Statut Membre Dernière intervention 19 avril 2023
4 déc. 2022 à 20:20

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

1
user_3022 Messages postés 11 Date d'inscription dimanche 4 décembre 2022 Statut Membre Dernière intervention 19 avril 2023 > yg_be Messages postés 22731 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2024
4 déc. 2022 à 20:37

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

0
user_3022 Messages postés 11 Date d'inscription dimanche 4 décembre 2022 Statut Membre Dernière intervention 19 avril 2023
4 déc. 2022 à 20:38

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

0

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

Posez votre question
Whismeril Messages postés 19030 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 27 avril 2024 931
4 déc. 2022 à 21:38

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