Re: [Matplotlib-users] closing figure inside a callback seg faults

2010-10-18 Thread Michael Droettboom
I seem to have run into this problem with wx years ago -- destroying the 
widget that fed an event from a callback causes issues.  As Chris 
suggested, the following seems to work, however:

import matplotlib.pyplot as plt
import wx

def close_figure():
 plt.close()

def onclick(event):
 if event.button==1:
 wx.CallAfter(close_figure)

fig = plt.gcf()
cid = fig.canvas.mpl_connect('button_press_event', onclick)
plt.show()

Mike

On 10/15/2010 08:35 PM, Chris Barker wrote:
> On 10/15/10 5:16 PM, Paul Ivanov wrote:
>
>> I want to do something like this:
>>
>> import matplotlib.pyplot as plt
>> def onclick(event):
>> if event.button==1:
>>  plt.close()
>> fig = plt.gcf()
>> cid = fig.canvas.mpl_connect('button_press_event', onclick)
>> plt.show()
>>
>> I've tried several variations on this theme, but all of them cause
>> crashes. Am I missing something?
>>
>> I'm using 1.0.0 with WXAgg
>>
>> thanks,
>>
>>  
> I don't know if MPL events do anything like this, but since you are
> using wx, you could probably use wx.CallAfter() (or wx.CallLater(), call
> one of those in your callback,a nd tehn have the function called close
> the figure.
>
> -Chris
>
>
> --
> Download new Adobe(R) Flash(R) Builder(TM) 4
> The new Adobe(R) Flex(R) 4 and Flash(R) Builder(TM) 4 (formerly
> Flex(R) Builder(TM)) enable the development of rich applications that run
> across multiple browsers and platforms. Download your free trials today!
> http://p.sf.net/sfu/adobe-dev2dev
> ___
> Matplotlib-users mailing list
> Matplotlib-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>


-- 
Michael Droettboom
Science Software Branch
Space Telescope Science Institute
Baltimore, Maryland, USA


--
Download new Adobe(R) Flash(R) Builder(TM) 4
The new Adobe(R) Flex(R) 4 and Flash(R) Builder(TM) 4 (formerly 
Flex(R) Builder(TM)) enable the development of rich applications that run
across multiple browsers and platforms. Download your free trials today!
http://p.sf.net/sfu/adobe-dev2dev
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] closing figure inside a callback seg faults

2010-10-15 Thread Chris Barker
On 10/15/10 5:16 PM, Paul Ivanov wrote:
> I want to do something like this:
>
>import matplotlib.pyplot as plt
>def onclick(event):
>if event.button==1:
>   plt.close()
>fig = plt.gcf()
>cid = fig.canvas.mpl_connect('button_press_event', onclick)
>plt.show()
>
> I've tried several variations on this theme, but all of them cause
> crashes. Am I missing something?
>
> I'm using 1.0.0 with WXAgg
>
> thanks,
>
I don't know if MPL events do anything like this, but since you are 
using wx, you could probably use wx.CallAfter() (or wx.CallLater(), call 
one of those in your callback,a nd tehn have the function called close 
the figure.

-Chris


--
Download new Adobe(R) Flash(R) Builder(TM) 4
The new Adobe(R) Flex(R) 4 and Flash(R) Builder(TM) 4 (formerly 
Flex(R) Builder(TM)) enable the development of rich applications that run
across multiple browsers and platforms. Download your free trials today!
http://p.sf.net/sfu/adobe-dev2dev
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


[Matplotlib-users] closing figure inside a callback seg faults

2010-10-15 Thread Paul Ivanov
I want to do something like this:

  import matplotlib.pyplot as plt
  def onclick(event):
  if event.button==1:
plt.close()
  fig = plt.gcf()
  cid = fig.canvas.mpl_connect('button_press_event', onclick)
  plt.show()

I've tried several variations on this theme, but all of them cause
crashes. Am I missing something?

I'm using 1.0.0 with WXAgg

thanks,
-- 
Paul Ivanov
314 address only used for lists,  off-list direct email at:
http://pirsquared.org | GPG/PGP key id: 0x0F3E28F7 

--
Download new Adobe(R) Flash(R) Builder(TM) 4
The new Adobe(R) Flex(R) 4 and Flash(R) Builder(TM) 4 (formerly 
Flex(R) Builder(TM)) enable the development of rich applications that run
across multiple browsers and platforms. Download your free trials today!
http://p.sf.net/sfu/adobe-dev2dev
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users