PCSI – IPT G. Monod
Initiation_Tkinter.docx
3/9
Widget Canvas - Bouton associé à une fonction : command = fonction
# Fonction appelée par le bouton boutM
def dessineDisque():
""" Déplace le disque aléatoirement """
global largeur, hauteur, dessin, disque
xd = rd.randint(30,largeur-30)
yd = rd.randint(30,largeur-30)
# Modification de la position du disque
dessin.coords(disque,xd,yd,xd+30,yd+30)
fenetre = Tk()
fenetre.title('Widget Canvas')
# widget Canvas = zone de dessin (ou fichier image png)
hauteur, largeur = 250, 300
dessin = Canvas(fenetre,bg='dark grey',height=hauteur, width=largeur)
# Positionnment du widget sur le côté gauche
dessin.pack(side=LEFT, padx=5, pady=5)
# Dessin d'un disque dans la zone de dessin
xd, yd = rd.randint(largeur), rd.randint(hauteur)
disque = dessin.create_oval(xd, yd, xd+30, yd+30, width=1, fill='red')
# Les coordonnées sont celles du rectangle circonscrit à l'oval
# width = épaisseur du contour ; fill = couleur de remplissage
# widget Label = zone de texte à lire
label1 = Label(fenetre, text='Déplace le disque')
# Positionnment automatique
label1.pack(padx=5, pady=5)
# widget Button utilisant appelant la fonction dessineDisque SANS PARENTHESES
boutM = Button(fenetre, text='Move !', command=dessineDisque)
# Positionnment automatique
boutM.pack(padx=5, pady=5)
boutQ = Button(fenetre, text='Quitter', command=fenetre.destroy)
# Positionnment du widget en bas
boutQ.pack(side=BOTTOM,padx=5, pady=5)
fenetre.mainloop()