Code without effect (wx demo TreeCtrl.py ImageList)
Steve Holden
steve at holdenweb.com
Mon Dec 20 13:03:06 EST 2004
Martin Drautzburg wrote:
> In the wx demoy TreeCtrl.py I find the following code, that should
> have no effect but seems to be needed nevertheless.
>
> class TestTreeCtrlPanel(wx.Panel):
> def __init__(self, parent, log):
> [...}
> self.tree = MyTreeCtrl(self, tID, wx.DefaultPosition, ...
> isz = (16,16)
> il = wx.ImageList(isz[0], isz[1])
> fldridx = il.Add(wx.ArtProvider_GetBitmap(wx.ART_FOLDER, wx.ART...
> [...]
>
> self.tree.SetImageList(il)
> --> self.il = il
>
> What is the effect of the last statement? self.il is not used
> anywhere. I used similar code in my application and it crashes unless
> I assign the image list to the parent panel. The name of the attribute
> does not seem to matter. I can write self.foo=il just as well, but
> without it it crashes.
You will probably find that without that reference to the image list it
will be garbage-collected while the images are still beign displayed,
leading to results that are at best unpredictable and at worst fatal to
your program.
regards
Steve
--
Steve Holden http://www.holdenweb.com/
Python Web Programming http://pydish.holdenweb.com/
Holden Web LLC +1 703 861 4237 +1 800 494 3119
More information about the Python-list
mailing list