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 4201 france tv ✓ - Forum Réseaux sociaux
- Erreur 4101 france tv - Forum Lecteurs et supports vidéo
- J'aime par erreur facebook notification - Forum Facebook
- Code erreur f3500-31 ✓ - Forum Bbox Bouygues
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.