Erreur tkinter
sayyylen
-
trifou -
trifou -
Bonjour,
Voici mon code, il marche mais à chaque fois que j'écrit dans les zones de texte ça me renvoi cette erreur:
Quelqu'un peu m'aider?
Voici mon code, il marche mais à chaque fois que j'écrit dans les zones de texte ça me renvoi cette erreur:
Quelqu'un peu m'aider?
Exception in Tkinter callback Traceback (most recent call last): File "C:\Users\Erwan\Anaconda3\lib\tkinter\__init__.py", [/download/telecharger-34098305-line line] 1705, in __call__ return self.func(*args) File "C:/Users/Erwan/Documents/_developement/_python/-tkinter/tkinter_10.py", line 5, in addition label_var.set(entry_var.get() + entry1_var.get()) File "C:\Users\Erwan\Anaconda3\lib\tkinter\__init__.py", line 529, in get return self._tk.getdouble(self._tk.globalgetvar(self._name)) _tkinter.TclError: expected floating-point number but got ""
import tkinter #----------------------def____-------------------------------------- def addition(*argms): label_var.set(entry_var.get() + entry1_var.get()) def plus_n(): a = label_var.get() b = entry1_var.get() c = (a + b) print (c) label_var.set(c) def multiplication(*argms): label_multi_var.set(multip_var.get() * multip1_var.get()) def fois_n(): d = label_multi_var.get() e = multip1_var.get() f = (d * e) print (f) label_multi_var.set(f) #----------------------root.tkinter----------------------------------- root = tkinter.Tk() root.geometry("600x200") root.minsize(200, 150) root.maxsize(1280, 720) root.title("Projet calcul") #-----------------------addition-------------------------------------- label_add = tkinter.Label(root, text=" Addition ") entry_var = tkinter.DoubleVar() entry_var.trace("w", addition) entry = tkinter.Entry(root, textvariable=entry_var) entry1_var = tkinter.DoubleVar() entry1_var.trace("w", addition) entry1 = tkinter.Entry(root, textvariable=entry1_var) signe = tkinter.Label(root, text="+") button = tkinter.Button(root, text="+x", background="blue", foreground="white",activebackground="white",activeforeground="black", command = plus_n) mainframe = tkinter.LabelFrame(root, height=50) label_var = tkinter.DoubleVar() label_result = tkinter.Label(mainframe, textvariable=label_var) label_add.grid(row=0, column=0) entry.grid(row=0, column=1) signe.grid(row=0, column=2) entry1.grid(row=0, column=3) mainframe.grid(row=0, column=4) label_result.grid() button.grid(row=0, column=5) #----------------------------multiplication--------------------------------- label_multi = tkinter.Label(root, text=" Multiplication ") multip_var = tkinter.DoubleVar() multip_var.trace("w", multiplication) multi = tkinter.Entry(root, textvariable=multip_var) signe = tkinter.Label(root, text="x") multip1_var = tkinter.DoubleVar() multip1_var.trace("w", multiplication) multi1 = tkinter.Entry(root, textvariable=multip1_var) mainframe_multi = tkinter.LabelFrame(root, height=50) label_multi_var = tkinter.DoubleVar() label_multi_result = tkinter.Label(mainframe_multi, textvariable=label_multi_var) button1 = tkinter.Button(root, text="*x", background="blue", foreground="white",activebackground="white",activeforeground="black", command = fois_n) label_multi.grid(row=1, column=0) multi.grid(row=1, column=1) signe.grid(row=1, column=2) multi1.grid(row=1, column=3) mainframe_multi.grid(row=1, column=4) label_multi_result.grid() button1.grid(row=1, column=5) #-----------------------end------------------------------------------------ button_quit = tkinter.Button(root, text="Quit", command=root.destroy, background="red", foreground="white", activebackground="white",activeforeground="black") button_quit.grid(sticky="s") root.mainloop()
Configuration: Windows / Chrome 79.0.3945.130
A voir également:
- _tkinter.tclerror: expected floating-point number but got ""
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- J'aime par erreur facebook notification - Forum Facebook
- Code erreur f3500-31 ✓ - Forum Bbox Bouygues
- Java code erreur 1603 ✓ - Forum Windows
1 réponse
Bonjour,
Cela renvoi une erreur si la valeur saisie n'est pas un float, si tu supprimes tous caractères de l' entry, ça fera ce genre d'erreur, et comme il n'est pas envisageable de ne pas pouvoir effacer le champ pour y inscrire une autre valeur, alors autant choper l'erreur.
Faire de même avec ta fonction d'addition.
Cela renvoi une erreur si la valeur saisie n'est pas un float, si tu supprimes tous caractères de l' entry, ça fera ce genre d'erreur, et comme il n'est pas envisageable de ne pas pouvoir effacer le champ pour y inscrire une autre valeur, alors autant choper l'erreur.
def multiplication(*argms): try: label_multi_var.set(multip_var.get() * multip1_var.get()) except tkinter.TclError: pass
Faire de même avec ta fonction d'addition.