Skip to content
Snippets Groups Projects
Commit f2223a70 authored by BenjaminNEGRE's avatar BenjaminNEGRE
Browse files

BE4

parent 0215c970
No related branches found
No related tags found
No related merge requests found
# -*- coding: utf-8 -*-
"""
Created on Fri Oct 16 13:31:24 2020
@author: negre
"""
import random
from tkinter import *
#EX1
'''
def tirage():
nb = random.randint(1, 100)
texteResultat.set('Nombre : ' + str(nb))
if __name__ == '__main__':
# création de l'arbre de scène
racine = Tk() # Appel à une méthode de classe (et non un constructeur, cf slide cours #2)
racine.title('Tirage aléatoire')
racine.geometry('300x100+400+400')
# Les widgets de la scène
boutonLancer = Button(racine, text='Tirage')
boutonLancer.pack(side=RIGHT, padx=5, pady=5)
texteResultat = StringVar()
labelResultat = Label(racine, textvariable=texteResultat,fg="red")
labelResultat.pack(side=RIGHT, padx=7, pady=7)
boutonQuitter = Button(racine, text='Quitter')
boutonQuitter.pack(side=LEFT, padx=5, pady=5)
#Arbre de scène : 3 éléments
# association des commandes aux widgets
boutonLancer.config(command=tirage) # appel dit callback (pas de parenthèses)
boutonQuitter.config(command=racine.destroy) # idem
racine.mainloop() # affichage de l'interface jusqu'à quit
'''
from formes import *
from tkinter import colorchooser
class ZoneAffichage(Canvas):
def __init__(self, parent, largeur, hauteur):
Canvas.__init__(self, parent, width=largeur, height=hauteur)
self.formeActuelle="Rectangle"
self.__ListeFormes=[]
def ajout_forme(self,x,y):
if self.formeActuelle=="Rectangle":
self.__ListeFormes.append(Rectangle(self, x-10, y+5, 20, 10, "brown"))
elif self.formeActuelle=="Ellipse":
self.__ListeFormes.append(Ellipse(self,x-5,y-10,25,25))
def delete_forme(self,x,y):
for f in self.__listeFormes:
if f.contient_point(x, y) == True :
f.effacer(self)
def selection_rectangle(self):
self.formeActuelle="Rectangle"
def selection_ellipse(self):
self.formeActuelle="Ellipse"
def supression_forme(self,x,y):
try:
i=next(i for i in range(len(self.__formes)-1,-1,-1) if self.__formes[1].contient_point(x,y))
class FenPrincipale(Tk):
def __init__(self):
Tk.__init__(self)
# L'initialisation de l'arbre de scène se fait ici
self.configure(bg='grey')
barreOutils=Frame(self)
barreOutils.pack(side=TOP)
bouttonRectangle=Button(barreOutils,text='Rectangle')
bouttonRectangle.pack(side=LEFT, padx=5, pady=5)
bouttonEllipse=Button(barreOutils,text='Ellipse')
bouttonEllipse.pack(side=LEFT, padx=5, pady=5)
bouttonCouleur=Button(barreOutils,text='Couleur')
bouttonCouleur.pack(side=LEFT, padx=5, pady=5)
bouttonQuitter=Button(barreOutils,text='Quitter')
bouttonQuitter.pack(side=LEFT, padx=5, pady=5)
Canevas=ZoneAffichage(self,600,400)
Canevas.pack(side=TOP,padx=10,pady=10)
self.__canevas.bind("<ButtonRelease-1>", self.release_canevas)
# Bind permet de relier les clics de souris sur le canevas
# Chaine de caract = commande ET release_canevas = commande renvoyant à la méthode décrite dessous
boutonRectangle.config(command=self.__canevas.selection_rectangle)
boutonEllipse.config(command=self.__canevas.selection_ellipse)
bouttonCouleur.config(command=self.__canevas.selection_couleur)
self.__canevas.bind("<Button-1>")
self.__canevas.bind("<ButtonRelease-1>", self.ctrl_release_canevas)
self.__deplacement_en_cours=FALSE
self.__dernier_x=0
delf.__dernier_y=0
self.__canevas.bind("<ButtonRelease-1>",self.release_canevas)
self.__canevas.bind("<M1-Motion>",self.drag_canevas)
def clic_canevas(self,event):
self.__dernier_x=event.x
self.__dernier_y=event.y
def control_clic_canevas(self,event):
self.__canevas.suppression_forme(event.x,event.y)
def release_canvas(self,event):
if not self.__deplacement_en_cours:
self.__canvas.ajout_forme(event.x,event.y)
else:
self.__canevas.fin_deplacement()
self.__deplacement_en_cours=False
def ctrl_release_canevas(self, event):
self.__canevas.delete_forme(event.x,event.y)
if __name__ == "__main__":
fen = FenPrincipale()
fen.mainloop()
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment