On 25/11/06, Martin Richter <[EMAIL PROTECTED]> wrote: > Hello everyone, > > although I thought this topic had been discussed earlier I wasn't able to find > it in the archives. So please forgive me if I'm repeating something. Here the > question I'm not able to answer on my own:
We really shoud wiki more of these email discussions as they come along. It's so much easier to search there, since things are in some sort of logical arrangement. > Is there a possibility to disconnect an event when someone wants to use the > zoom-to-rectangle mechanism so that the code which originally would be > executed on the event isn't actually executed as long as the zooming is > activated? To have an example to talk about: > > ############ > from pylab import * > > def click(event): > """If the left mouse button is pressed: draw a little square. """ > if event.button==1 and event.inaxes: > x,y = event.xdata,event.ydata > plot([x],[y],'rs') > draw() > > plot((arange(100)/99.0)**3) > gca().set_autoscale_on(False) > connect('button_press_event',click) > show() > ############ > > If one runs this script and tries to use the zooming he will always add such a > little red square to the plot. Can this be prevented somehow? > Yes, first you need to have a reference to your toolbar handy. It took me a few minutes to work out how to do this with pylab, since I usually use it in a wxPython frame where the toolbar is explicity defined, but apparently in pylab you can use : tb = get_current_fig_manager().toolbar Then check the mode attribute of the toolbar in your click script: if tb.mode = "": do_stuff else ignore So your script becomes: ############## from pylab import * def click(event): """If the left mouse button is pressed: draw a little square. """ tb = get_current_fig_manager().toolbar if event.button==1 and event.inaxes and tb.mode == '': x,y = event.xdata,event.ydata plot([x],[y],'rs') draw() plot((arange(100)/99.0)**3) gca().set_autoscale_on(False) connect('button_press_event',click) show() ############## I hope that helps, Angus. -- AJC McMorland, PhD Student Physiology, University of Auckland ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users