Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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 wink

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 ! hmm

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 wink


- 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