From: David Trémouilles <david.trem@gm...> - 2010-09-23 15:52:22
This does indeed solve my issue.
Many many thanks,
Le 23/09/10 17:35, Ryan May a écrit :
> On Thu, Sep 23, 2010 at 9:16 AM, David Trémouilles<david.trem@...> wrote:
>> OK, was able to narrow thinks down:
>> actually it looks like
>> figure.canvas.mpl_connect('pick_event', function)
>> does not connect the "function" if it is a class method (...?)
>> In attachment you will find two files illustrating this:
>> buggy_pick.py and buggy_pick2.py
>> Both work nicely with matplotlib 0.93
>> With matplotlib 1.0 buggy_pick.py does not work while buggy_pick2.py does
>> The only difference is in the PickFig class...
>> Is it really a bug or I'm doing something wrong ?
>> Any workaround would be welcome.
> Technically, you're doing something sort of wrong, though it's very
> subtle. And it just so happens that the way the code for callbacks was
> reworked that this even showed up.
> In this code:
> class TestFig(MatplotlibFig):
> def __init__(self, parent=None):
> MatplotlibFig.__init__(self, parent)
> You create a PickFig, but since you don't assign it to anything, it
> gets garbage collected and (eventually) removed from the callbacks.
> Previously, the callback registry would have a reference to the
> callbacks, which would have kept PickFig alive. This was changed to
> eliminate some resource leaks. The fix is simple, just save the
> PickFig as a member of TestFig:
> self.pf = PickFig(self.figure)
> That fixes the problem for me.
Get latest updates about Open Source Projects, Conferences and News.