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 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]

Hors 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