29/10/11 21:50, Benjamin Root
On Saturday, October 29, 2011, Antoine Levitt > <antoine.levitt@...149...> wrote:
29/10/11 21:20, Benjamin Root
On Saturday, October 29, 2011, Antoine Levitt >>> <antoine.levitt@...149...> wrote:
29/10/11 19:39, Benjamin Root
I don't think there is a document for the default keymaps, and
has been some talk about redoing default keybindings, because
so hidden and varies from backend to backend.
In the meantime, I would suggest checking out the "event
section of the examples page. You can have a function that you
to the "key_press_event", which takes an "event" object as an
argument. That event object has the key that was pressed. You
then have an if...elif...else statement for all the keys and
or have a dictionary of key-action pairs.
Hope that helps!
That's pretty cool! However, I have to do it for every figure I
there doesn't seem to be a way to tell matplotlib : "whenever a
is created, associate this handler to this event".
I think I'll just wait for the keybinding stuff to get refactored,
would definitely be a good idea (I only found out via very
means, and had to change backend to get them working). It seems
worthwhile to have a "q" default binding to exit the plot.
The basic event handling isn't going to be refactored. I was
speaking of how the default keymaps are set. Yes, you will need to
mpl_connect for each figure object. This is standard for any GUI
control system. What you can do is make a function that produces a
figure for you as well as perform any event connections for you.
The problem is that I don't usually invoke figure(), I just do
plot(x,y), which will presumably call figure for me. So unless
some kind of event that's run after figure is called, I can't have a
generic way of adding my bindings.
Just typing f = gcf() displays a figure, which I don't want to do. I
want to be able to put something in my ipython init file that'd set my
bindings, without changing anything else.