Bonjour, je poste ici parce-que un problème commence à me prendre pas mal la tête...
Alors voila, j'ai fait un script avec python afin de calculer un score sur une cible selon des valeurs renvoyé par des capteurs de forces et j'ai décidé de faire un petit interface graphique avec Tkinter oû l'on rentrerait les 4 valeurs et que le score se calcule lorsqu'on appui sur un bouton.
J'en suis donc arrivé ici :
from Tkinter import *
from math import *
def evaluer(event):
b1,b2,b3,b4=bal1.get(),bal2.get(),bal3.get(),bal4.get()
b=[float(b1),float(b2),float(b3),float(b3)] ## Les valeurs renvoie par les balances/capteurs
b.sort() ## Tri la liste par ordre croissant
b.reverse() ## Inverse la liste (ordre decroissant)
cotecible=70. ## Reglage des dimensions de la cible
demidiag=sqrt(cotecible**2/2) ## Calcul de la longueur de la demi-diagonale de la cible
d1=(demidiag/10)*((120-b[0])/8) ##Distance de l'impact de la balance renvoyant la plus grande valeur
d2=(demidiag/10)*((120-b[1])/8) ##Distance de l'impact de la balance renvoyant la deuxieme plus grande valeur
cosalpha=-((d1**2-d2**2-cotecible**2)/(2*d2*cotecible)) ##Cosinus de l'angle inconu
alpha=degrees(acos(cosalpha)) ##Valeur de l'angle inconu
distancecentre = sqrt((2*(cotecible/2)**2)+d2**2-2*sqrt(2*(cotecible/2)**2)*d2*cos(radians(45-alpha)))
##Calcule de la distance entre le centre de la cible et le point d'impact
score = int(((demidiag-distancecentre)/(demidiag/10))+1)
tex2.configure(text=score)
fen1=Tk()
tex1=Label(fen1, text="Calcul du score effectue lors d'un tir ", fg='red')
tex1.pack()
bal1= Entry(fen1).pack()
bal2= Entry(fen1).pack()
bal3 = Entry(fen1).pack()
bal4 = Entry(fen1).pack()
tex2=Label(fen1).pack()
calculscore=Button(fen1, text="Calculer", command=evaluer).pack()
fen1.mainloop()
Le problème est que quand je click sur le bouton Calculer, le terminal m'affiche un message d'erreur :
Exception in Tkinter callback
Traceback (most recent call last):
File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1413, in __call__
return self.func(*args)
TypeError: evaluer() takes exactly 1 argument (0 given)
Voilà, en espérant que quelqu'un puisse m'aider.
Merci d'avance.
Lorsque je vire le event, une autre erreur apparait dans la console :
Traceback (most recent call last):
File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1413, in __call__
return self.func(*args)
File "scorecible.py", line 5, in evaluer
b1,b2,b3,b4=bal1.get(),bal2.get(),bal3.get(),bal4.get()
AttributeError: 'NoneType' object has no attribute 'get'
Pourquoi le event pose problème? Je ne comprend pas...
Heu oui, je crois.
Je lance l'application, je click dans la première case, je rentre 40, la deuxième 40 et pareil sur les deux autres, puis je click sur calculer et ça me met alors cette erreur
Merci josmilley, erreur résolu!
Il resté une petite erreur après :
la même que précédemment mais avec configure à la place, j'ai donc du faire pareil pour le tex2 que pour les bal.
L'application marche enfin, merci a vous deux.
Problème de command Button
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Python c'est bon, mangez-en.