# -*- coding:Utf8 -*-

# Version avec variables globales d'un tracé de lignes dans un canevas

# définition des fonctions gestionnaires d'événements :
def drawline():
    "Tracé d'une ligne dans le canevas can"
    global x1, y1, x2, y2, coul
    can.create_line(x1,y1,x2,y2,width=2,fill=coul)

    # modification des coordonnées pour préparer la ligne suivante :
    y1, y2 = y1-10, y2+10

def changecolor():
    "Changement aléatoire de la couleur du tracé"
    global coul
    palette=['purple','cyan','maroon','green','red','blue','orange','yellow']
    c = randrange(8)        # => génère un nombre aléatoire de 0 à 7
    coul = palette[c]

#------ Programme principal -------
from tkinter import *
from random import randrange

# les variables suivantes seront 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 widget principal ("parent") :
fen = Tk()
# création des widgets "enfants" :
# canvas:
can = Canvas(master=fen,bg='dark grey',height=200,width=200)
can.pack(side=LEFT)

# boutons:
bou1 = Button(fen,text='Quitter',command=fen.quit)
bou1.pack(side=BOTTOM)
bou2 = Button(fen,text='Tracer une ligne',command=drawline)
bou2.pack()
bou3 = Button(fen,text='Autre couleur',command=changecolor)
bou3.pack()

# démarrage de l'observateur d'évènements (boucle principale) :
fen.mainloop()
fen.destroy()
