From b0ccb772bc93b25572783fcca0f1a6fa10017ab9 Mon Sep 17 00:00:00 2001
From: Teryx-Enzo <enzo.pelous@ecl20.ec-lyon.fr>
Date: Fri, 16 Oct 2020 16:41:13 +0200
Subject: [PATCH] Create TD4.py

---
 seance4_4h/TD4.py | 138 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 138 insertions(+)
 create mode 100644 seance4_4h/TD4.py

diff --git a/seance4_4h/TD4.py b/seance4_4h/TD4.py
new file mode 100644
index 0000000..4a9bdf4
--- /dev/null
+++ b/seance4_4h/TD4.py
@@ -0,0 +1,138 @@
+# -*- coding: utf-8 -*-
+"""
+Created on Fri Oct 16 13:40:07 2020
+
+@author: MrPam
+"""
+
+
+from formes import *
+from tkinter import *
+from tkinter import colorchooser
+
+
+
+class ZoneAffichage(Canvas):
+    def __init__(self, parent, largeur, hauteur):
+        Canvas.__init__(self, parent, width=largeur, height=hauteur, bg = 'white')
+        self.forme_selectionnee = Rectangle
+        self.formes = []
+        self.couleur = '#80ff00'
+        self.mode = 0
+        self.en_deplacement = None
+        self.x = 0
+        self.y  = 0
+        
+        
+    def ajout_forme(self,x,y):
+        if self.forme_selectionnee == Rectangle :
+            rect = Rectangle(self,x-5,y-10,10,20,self.couleur)
+            self.formes += [rect]
+        elif self.forme_selectionnee == Ellipse : 
+            ell = Ellipse(self,x,y,10,20,self.couleur)
+            self.formes += [ell]
+            
+            
+    def efface(self,x,y):
+        liste = self.formes
+        liste.reverse()
+        for fig in liste:
+            if fig.contient_point(x,y) : 
+                fig.effacer()
+                self.formes.remove(fig)
+                break
+    
+    def changement_mode(self):
+        self.mode = (1-self.mode)
+    
+    def choix_deplacer(self,event):
+        if self.mode == 1 :
+            liste = self.formes
+            liste.reverse()
+            for fig in liste:
+                if fig.contient_point(event.x,event.y) : 
+                    self.en_deplacement = fig
+                    self.x = event.x
+                    self.y = event.y
+                    
+                    break
+    def position_courante(self,event):
+        if self.mode==1 and self.en_deplacement != None :
+            self.en_deplacement.deplacement(event.x-self.x,event.y-self.y)
+            self.x = event.x
+            self.y = event.y
+
+
+            
+   
+            
+        
+    
+    
+    def dessine(self,event):
+        if self.mode == 0 : 
+            self.ajout_forme(event.x,event.y)
+  
+            
+       
+            
+    
+            
+    def efface_forme(self,event):
+        self.efface(event.x,event.y)
+    def pass_rect(self):
+        self.forme_selectionnee = Rectangle
+        
+    def pass_ell(self):
+        self.forme_selectionnee = Ellipse
+        
+    def changement_couleur(self):
+        self.couleur = colorchooser.askcolor(color=None)[1]
+        print(self.couleur)
+    
+class FenPrincipale(Tk):
+    def __init__(self):
+        Tk.__init__(self)
+        conteneur = Frame(self, bg = 'white')
+        conteneur.pack()
+        boutonRect = Button(conteneur, text='Rectangle')
+        boutonRect.pack(side=LEFT, padx=5, pady=5)
+        boutonEll = Button(conteneur, text='Ellipse')
+        boutonEll.pack(side=LEFT, padx=5, pady=5)
+        boutonCouleur = Button(conteneur, text='Couleur')
+        boutonCouleur.pack(side=LEFT, padx=5, pady=5)
+        boutonMode = Button(conteneur, text='Mode')
+        boutonMode.pack(side=LEFT, padx=5, pady=5)
+        boutonQuitter = Button(conteneur, text='Quitter')
+        boutonQuitter.pack(side=LEFT, padx=5, pady=5)
+        zone =ZoneAffichage(self,300,400)
+        zone.pack()
+        
+        # L'initialisation de l'arbre de scène se fait ici
+
+        zone.bind('<ButtonRelease-1>',zone.dessine)
+        zone.bind('<Button-1>',zone.choix_deplacer)
+        zone.bind('<B1-Motion>',zone.position_courante)
+        
+        zone.bind('<Control-ButtonRelease-1>',zone.efface_forme)
+        
+        boutonRect.config(command=zone.pass_rect)
+        boutonEll.config(command=zone.pass_ell)
+        boutonCouleur.config(command = zone.changement_couleur)
+        boutonMode.config(command = zone.changement_mode)
+
+
+
+if __name__ == "__main__":
+    fen = FenPrincipale()
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    fen.mainloop()
-- 
GitLab