1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
| #!/usr/bin/python
# -*- coding: utf8 -*-
from tkinter import *
class Visage(Canvas):
def __init__(self, x=20, y=20):
#les caractéristiques de chaque cercle sont placés
#dans une liste de listes:
self.cc = [[100, 100, 80, 'red'],
[70, 70, 15, 'blue'],
[130, 70, 15, 'blue'],
[70, 70, 5, 'black'],
[130, 70, 5, 'black'],
[44, 115, 20, 'red'],
[156, 115, 20, 'red'],
[100, 95, 15, 'purple'],
[100, 145, 30, 'purple'],
[100, 145, 130, 145, 'purple']]
Canvas.__init__(self) #importation du constructeur de la classe Canvas.
def figureOpen(self):
'''dessiner un visage simplifié avec bouche ouverte'''
self.can.delete(ALL)
def cercle(self, x, y, r, coul ='black'):
"""tracé d'un cercle de centre (x,y) et de rayon r"""
self.can.create_oval(x-r, y-r, x+r, y+r, outline=coul)
#On trace tous les cercles à l'aide d'une boucle
for e in self.cc:
el = self.cc[e]
cercle(el[0], el[1], el[2], el[3])
def figureClose(self):
'''Dessiner un visage simplifié avec bouche fermée'''
self.can.delete(ALL)
self.can.create_oval(x-r, y-r, x+r, y+r, outline=coul)
for e in self.cc:
if flag == 0:
el = self.cc[e]
cercle(el[0], el[1], el[2], el[3])
if el == self.cc[8]:
flag = 1
elif flag == 1:
break
self.can.create_line(self.cc[10[1]], self.cc[10[2]], self.cc[10[3]], self.cc[10[4]],
outline=self.cc[10[5]])
class Application(Frame):
def __init__(self, larg=400, long=400):
Frame.__init__(self)
self.can = Canvas(height=larg, width=long, bg='grey')
self.bonhomme = Visage()
self.button1=Button(self, text='ouvrir', command=figureOpen).pack(side=LEFT)
self.button2=Button(self, text='fermer', command=figureClose).pack(side=RIGHT)
#Lancement du programme
app = Application()
app.mainloop() |
Partager