Pourquoi rien ne se déclenche (python 2.4)

Fermé
calamar31 - 2 sept. 2010 à 15:48
 Utilisateur anonyme - 2 sept. 2010 à 18:59
Bonjour,
voici le problème : le boutton que j'ai placé est censé faire que message s'affiche par l'intermédiaire de messagelabel
voici le code:

# -*- coding: cp1252 -*-
#All pythagore V3 (GUI)#
#importation de tkinter et math#
from Tkinter import *
from math import pow
#création des fonctions du programme#
def rectangleoupas(cote1,cote2,cote3):
if (pow(float(cote3),2)==pow(float(cote2),2)+pow(float(cote1),2)):
message = "le triangle de cote " , str(cote1) , " , " , str(cote2) , " , " , str(cote3) , "est rectangle. "
if (pow(float(cote2),2))==pow(float(cote3),2)+pow(float(cote1),2):
message = "le triangle de cote " , str(cote1) , " , " , str(cote2) , " , " , str(cote3) , "est rectangle. "
if (pow(float(cote1),2))==pow(float(cote2),2)+pow(float(cote3),2):
message = "le triangle de cote " , str(cote1) , " , " , str(cote2) , " , " , str(cote3) , "est rectangle. "
if (pow(float(cote3),2)!=pow(float(cote2),2)+pow(float(cote1),2)and pow(float(cote2),2)!=pow(float(cote3),2)+pow(float(cote1),2)and pow(float(cote1),2)!=pow(float(cote2),2)+pow(float(cote3),2)):
message = "le triangle de cote " , str(cote1) , " , " , str(cote2) , " , " , str(cote3) , "n'est pas rectangle. "
#création des variables#
opaf=0 #opaf = opération a faire#
message="" #message est la variable qui affichera le résultat#
cote1=1
cote2=1
cote3=1
#début du programme#
fenetre = Tk()
fenetre.title("all pythagore V3")
labelcote1=Label(fenetre,text="entrer la cote 1")
entrecote1=Entry(fenetre)
labelcote2=Label(fenetre,text="entrer la cote 2")
entrecote2=Entry(fenetre)
labelcote3=Label(fenetre,text="entrer la cote 3")
entrecote3=Entry(fenetre)
boutton1=Button(fenetre,text="Alors?",command = rectangleoupas(cote1,cote2,cote3))
messagelabel=Label(fenetre,textvariable = message)
labelcote1.grid(row=0,column=0)
entrecote1.grid(row=0,column=1)
labelcote2.grid(row=1,column=0)
entrecote2.grid(row=1,column=1)
labelcote3.grid(row=2,column=0)
entrecote3.grid(row=2,column=1)
boutton1.grid(row=3,column=1)
messagelabel.grid(row=4,column=1)
cote1=entrecote1.get()
cote2=entrecote2.get()
cote3=entrecote3.get()
fenetre.mainloop()

pouvez-vous me dire pourquoi rien ne se passe?
merci



A voir également:

1 réponse

Utilisateur anonyme
2 sept. 2010 à 18:59
Plusieurs erreurs!

1)
boutton1=Button(fenetre,text="Alors?",command = rectangleoupas(cote1,cote2,cote3))


Pas d'arguments après une fonction.

Comment je fais alors si j'ai des arguments?

T'utilises lambda

ce qui donne

boutton1=Button(fenetre,text="Alors?",command =lambda: rectangleoupas(cote1,cote2,cote3))


2) la méthode get() d'entry retourne un string

3) plutôt que la fonction pow() qui rend moche ton code, mieux vaut **2

pow(3, 2) # --> 3**2


4) A quoi te sert d'initialiser tes cotes à 1?

Réponse : A rien!

Corrige tout ça déjà
0