Bonjour,

J'ai un souci pour un programme python qui est similaire à la version minimaliste suivante:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
import matplotlib.pyplot as plt
fig = plt.figure()
 
def onclick(event):
  print event.button
 
connection_id = fig.canvas.mpl_connect('button_press_event', onclick)
plt.show()
En fait, j'aimerais pouvoir entrer dans l'action 'onclick' d'autres paramètres (deux entiers) en plus de l'event. La fonction ressemblerait à ça:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
def onclick(event,a,b):
  print event.button
  print a,b,a+b
 
connection_id = fig.canvas.mpl_connect('button_press_event', onclick(x1,x2))
plt.show()
mais j'ai le message d'erreur suivant:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
Exception in Tkinter callback
Traceback (most recent call last):
  File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1413, in __call__
    return self.func(*args)
  File "cfht2d.py", line 165, in action
    cid = fig.canvas.mpl_connect('button_press_event', onclick(lmin,lmax))
TypeError: onclick() takes exactly 3 arguments (2 given)
Auriez-vous une autre méthode à suggérer pour contourner ça?

Merci!