Bonsoir à tous,

Toujours dans mon apprentissage du Python avec Swinnen, j'en suis au chapitre 8. Plus précisément à l'exercice 8.11.

Dans cet exercice, il est demandé d'écrire un programme qui détecte un click dans une fenêtre. Lors du click, il faut créer un cercle.

Voici mon programme:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
#!/usr/bin/python3.4
# -*-coding:Utf-8 -*
 
# Détection et positionnement d'un click de souris dans une fenêtre
# Ajout d'un petit cercle rouge à l'endroit du click
 
from tkinter import *
 
 
def pointeur(event):
    chaine.configure(text="Click détecté en X =" + str(event.x) + \
                          ", Y =" + str(event.y))
 
 
def cercle(x, y, r, coul):
    " Creation d'un cercle de centre (x,y) de rayon r et de couleur coul "
    r = 5
    coul = 'red'
    cadre.create_oval(x - r, x + r, y - r, y + r, fill=coul)
 
 
# ----- Programme principal ----- #
 
fen = Tk()
 
cadre = Canvas(fen, width=200, height=150, bg="light yellow")
cadre.bind("<Button-1>", pointeur)
cadre.bind("<Button-1>", cercle)
cadre.pack()
chaine = Label(fen)
chaine.pack()
 
fen.mainloop()

Malheureusement, j'obtiens ce message d'erreur à l'éxecution:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
/usr/bin/python3.4 "/home/fieldmoose/Documents/Python/Exercices/Chap 8/8_11.py"
Exception in Tkinter callback
Traceback (most recent call last):
  File "/usr/lib/python3.4/tkinter/__init__.py", line 1490, in __call__
    return self.func(*args)
TypeError: cercle() missing 3 required positional arguments: 'y', 'r', and 'coul'
Pourriez-vous m'aider SVP?