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
|
def clic(self, event):
"""Fonction qui permet de creer une figure ou de la deplacer si une selection est en cours"""
if self.selObject:
# Une sélection est en cours : déplacement
newposx=event.x
newposy=event.y
if self.selObject:
ListCords = self.canvas.coords(self.selObject)
print dir(self.selObject)
ObjType=self.canvas.gettags(self.selObject)[0]
x1=ListCords[0]
y1=ListCords[1]
x2=ListCords[2]
y2=ListCords[3]
if ObjType != 'Triangle':
demilargeur=(x2-x1)/2
demihauteur=(y2-y1)/2
self.canvas.coords(self.selObject, newposx-demilargeur, newposy-demihauteur, newposx+demilargeur, newposy+demihauteur)
else:
x3=ListCords[4]
y3=ListCords[5]
demilargeur=(x3-x1)/2
if y2>y1: # Prise en compte du sommet
demihauteur=(y2-y1)/2
self.canvas.coords(self.selObject, newposx-demilargeur, newposy-demihauteur, newposx, newposy+demihauteur, newposx+demilargeur, newposy-demihauteur)
else:
demihauteur=(y1-y2)/2
self.canvas.coords(self.selObject, newposx-demilargeur, newposy+demihauteur, newposx, newposy-demihauteur, newposx+demilargeur, newposy+demihauteur)
self.clearscreen()
else:
# Création d'une nouvelle fig
self.clearscreen()
self.x1=event.x
self.y1=event.y
if self.fig.get() == "Cercle":
self.item=self.canvas.create_oval(self.x1, self.y1, self.x1, self.y1, fill="black", tag='Cercle')
elif self.fig.get() == "Carre":
self.item=self.canvas.create_rectangle(self.x1, self.y1, self.x1, self.y1, fill="black", tag='Carre')
elif self.fig.get() == "Triangle":
self.item=self.canvas.create_polygon(self.x1, self.y1, self.x1, self.y1, self.x1, self.y1, tag='Triangle') |