Contenu | Rechercher | Menus

Annonce

Ubuntu-fr.org recrute toujours de nouveaux modérateurs, avec de l'expérience.

Ubuntu 16.04 LTS
Réservez vos DVD et clé USB Ubuntu-fr (premières livraisons mi-mai)

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

M.A.J. en cours du forum possibilité de bug, nous faisons le maximum pour les résoudre au plus vite

#1 Le 08/01/2013, à 16:13

brital

[Résolu]Problème Python3, Tkinter et les canvas.

Bonjour,
J'ai recopié l'exemple du livre de G. Swinnen "Apprendre à programmer avec Python3"(chapitre 9 page 85): tracé de lignes dans un canevas.
Le problème, c'est quand j'appuie sur le bouton "changer la couleur", la couleur de la future ligne ne change pas. Et je ne vois pas trop pourquoi...

###############################################################################
# Importation de fonctions externes:
from tkinter import *
from random import randrange
###############################################################################
## Définition locale de fonctions:
def drawLine() :
	"Tracé d'une ligne dans le canevas can1"
	global x1, y1, x2, y2, coul, can1
	can1.create_line(x1,y1,x2,y2,width=2, fill=coul)
	# modifications des coordonnées pour la ligne suivante.
	y2, y1 = y2+10, y1-10

def changecolor():
	"Changement aléatoire de la couleur du tracé"
	global couleur
	pal = ['purple','cyan','maroon','green','red','blue','orange', 'yellow']
	c = randrange(8)
	coul = pal[c]
	
###############################################################################
# Corps principal du programme:
# Les variables suivantes sont utilisées de manière globale.
x1,	y1, x2, y2 = 10, 190,190,10	# coordonnées de la ligne.
coul = 'dark green'				# couleur de la ligne.
# Création du widgets principal(maître).
fen1 = Tk()
# Création des widgets "esclave".
can1 = Canvas(fen1, bg='dark grey',height=200,width=200)
can1.pack(side=LEFT)
bou1 = Button(fen1,text='Quitter', command=fen1.quit)
bou1.pack(side=BOTTOM)
bou2 = Button(fen1, text='Tracer une ligne',command=drawLine)
bou2.pack()
bou3 = Button(fen1,text='Autre couleur',command=changecolor)
bou3.pack()
	
fen1.mainloop()		# démarrage du gestionnaire d'événements. 
	
fen1.destroy()		        # destruction(fermeture) de la fenêtre.
	

Dernière modification par brital (Le 08/01/2013, à 18:14)

Hors ligne

#2 Le 08/01/2013, à 18:05

pingouinux

Re : [Résolu]Problème Python3, Tkinter et les canvas.

Bonjour,
Petite erreur d'étourderie dans changecolor (coul != couleur) :

	global couleur
..........................
	coul = pal[c]

En ligne

#3 Le 08/01/2013, à 18:13

brital

Re : [Résolu]Problème Python3, Tkinter et les canvas.

Oh merci, mais que je suis c*n yikes

Hors ligne