Skip to content
Snippets Groups Projects
Commit b0ccb772 authored by Pelous Enzo's avatar Pelous Enzo
Browse files

Create TD4.py

parent 0215c970
Branches master
No related tags found
No related merge requests found
# -*- 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()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment