#1 Le 12/08/2007, à 20:34
- SaintTwo
[Résolu] Probléme de débutant en Python.
Bonjour à tous !
je suis nouveau sous ubuntu (Kubuntu exactement) et je m'y retrouve complétement au bout de 2 mois, j'ai même totalement désinstaller Windows XP pour dire ... (Bon ca c'était pour l'anecdote vu que c'est mon premier post sur le forum)
J'ai récemment entrepris l'apprentissage de la programmation par Python avec l'aide du Pdf en ligne de Swinnen (Vachement bien je trouve) mais je rencontre déja des problèmes lors d'un exercice...
Intitulé de l'exercice :
a) Créez un court programme qui dessinera les 5 anneaux olympiques dans un rectangle de
fond blanc (white). Un boutton « Quitter » doit permettre de fermer la fenêtre.
b) Modifiez le programme ci-dessus en y ajoutant 5 boutons. Chacun de ces boutons
provoquera le tracé de chacun des 5 anneaux
Mon script :
# Programme tracant les anneaux olympiques (interface graphique)
from Tkinter import *
# Definition de la fonction
def traceAnneau(x1,y1,x2,y2,couleur):
"fonction qui trace les anneaux olympiques"
canvas1.create_oval(x1,y1,x2,y2,width=2,outline=couleur)
# Création de la fenêtre
fen1=Tk()
# Création du canevas
canvas1=Canvas(fen1,bg="light blue",height=200,width=335)
canvas1.pack(side=LEFT)
# Création des boutons
bouton1=Button(fen1,text="Anneau rouge",command=traceAnneau(20,30,120,130,"red"))
bouton1.pack()
bouton2=Button(fen1,text="Anneau noir",command=traceAnneau(120,30,220,130,"black"))
bouton2.pack()
bouton3=Button(fen1,text="Anneau bleu",command=traceAnneau(220,30,320,130,"blue"))
bouton3.pack()
bouton4=Button(fen1,text="Anneau jaune",command=traceAnneau(70,80,170,180,"yellow"))
bouton4.pack()
bouton5=Button(fen1,text="Anneau vert",command=traceAnneau(170,80,270,180,"green"))
bouton5.pack()
bouton6=Button(fen1,text="Quitter",command=fen1.quit)
bouton6.pack()
fen1.mainloop()
Le problème, c'est que là, quand j'execute mon script, les anneaux s'affichent tout seuls alors que j'ai même pas pu les dessinner moi-même en appuyant sur mes petits boutons... J'ai beau lire et relire mon code, je ne comprend pas ...
J'ai bien sur regardé les corrigés mais les scripts ne répondent pas du tout a mon problème et sont meme radicalement différents. Je ve comprendre pourquoi ca marche pas !
SVP ! aidez moi ! ^^
Merci d'avance.
Dernière modification par SaintTwo (Le 12/08/2007, à 21:23)
Hors ligne
#2 Le 12/08/2007, à 20:40
- HymnToLife
Re : [Résolu] Probléme de débutant en Python.
Apparamment, en Tkinter, tu ne peux pas appeler des fonctions avec des arguments depuis un bouton, il faut donc faire un truc comme ça :
# Programme tracant les anneaux olympiques (interface graphique)
from Tkinter import *
# Definition de la fonction
def traceAnneau(x1,y1,x2,y2,couleur):
"fonction qui trace les anneaux olympiques"
canvas1.create_oval(x1,y1,x2,y2,width=2,outline=couleur)
def traceAnneauRouge() :
traceAnneau(20, 30, 120, 130, 'red')
# Création de la fenêtre
fen1=Tk()
# Création du canevas
canvas1=Canvas(fen1,bg="light blue",height=200,width=335)
canvas1.pack(side=LEFT)
# Création des boutons
bouton1=Button(fen1,text="Anneau rouge",command=traceAnneauRouge)
bouton1.pack()
bouton2=Button(fen1,text="Anneau noir",command=traceAnneauNoir)
bouton2.pack()
bouton3=Button(fen1,text="Anneau bleu",command=traceAnneauBleu)
bouton3.pack()
bouton4=Button(fen1,text="Anneau jaune",command=traceAnneauJaune)
bouton4.pack()
bouton5=Button(fen1,text="Anneau vert",command=traceAnneauVert)
bouton5.pack()
bouton6=Button(fen1,text="Quitter",command=fen1.quit)
bouton6.pack()
fen1.mainloop()
Les fonctions traceAnneauNoir/Bleu/Jaune/Vert restent à définir
Dernière modification par HymnToLife (Le 12/08/2007, à 20:52)
- Rodrigue, as-tu du cœur ?
- Non, mais j'ai du pique !
Hors ligne
#3 Le 12/08/2007, à 20:49
- SaintTwo
Re : [Résolu] Probléme de débutant en Python.
[ HS ] Ben non HymnToLife, ca marche pas ! ca m'affiche directement les anneaux sans même que je clique sur les boutons !
Dernière modification par SaintTwo (Le 12/08/2007, à 21:00)
Hors ligne
#4 Le 12/08/2007, à 20:51
- HymnToLife
Re : [Résolu] Probléme de débutant en Python.
Je voulais dire, l'erreur que j'avais cru trouver en premier n'en était pas une. J'ai trouvé la bonne erreur, voir plus heut
- Rodrigue, as-tu du cœur ?
- Non, mais j'ai du pique !
Hors ligne
#5 Le 12/08/2007, à 21:00
- SaintTwo
Re : [Résolu] Probléme de débutant en Python.
Ben je vais tenter ca !
Merci beaucoup de ton aide et de ta réactivité !
Hors ligne