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
| # Exercice 13.20
from tkinter import *
# Création du canva
class Balle(Canvas):
"Représente une balle dans un canvas"
def __init__(self, boss=None, larg=200, haut=150, ray=30, coul="red"):
Canvas.__init__(self)
self.configure(width=larg, height=haut, bg="dark grey")
self.larg, self.haut, self.balle = larg, haut, ray
self.ballon = self.create_oval(self.larg/2-ray,self.haut/2-ray,
self.larg/2+ray,self.haut/2+ray, width=2, fill=coul)
def diametre(self, ray=20):
"Modifie le rayon de la balle"
self.ballon.itemconfig(self.larg/2-ray,self.haut/2-ray,
self.larg/2+ray,self.haut/2+ray)
class Regle(Frame):
"Scale permatant d'effectuer un reglage sur un objet"
def __init__(self, boss=None):
Frame.__init__(self)
self.regl = Scale(self, length=200, orient=VERTICAL, sliderlength=25,
label="Taille", from_=20, to=100, tickinterval=2,
resolution=5, showvalue=1, command=self.taille)
self.regl.pack()
def taille(self, regl):
self.reglage = float(regl)
self.event_generate("<Control-Z>")
class Fenetre(Frame):
"Classe regroupant tous les éléments du programme"
def __init__(self, boss=None):
Frame.__init__(self)
fen=Balle(larg=300, haut=300, ray=20)
fen.pack(padx=10, pady=10, side=LEFT)
mes = Regle()
mes.pack()
Button(text="Quitter", command=self.quit).pack(side=BOTTOM)
# Désignation de l'evenement qui modifie le diamètre
self.master.bind("<Control-Z>", self.modif)
def modif(self, event):
"Modification du diametre de la balle"
self.fen.diametre(mes.taille.reglage)
Fenetre().mainloop() |